How can I print all unicode characters?

Question:

I want to print some unicode characters but u'u1000' up to u'u1099'. This doesn’t work:

for i in range(1000,1100):
    s=unicode('u'+str(i))
    print i,s
Asked By: Dirk Nachbar

||

Answers:

Use unichr:

s = unichr(i)

From the documentation:

unichr(i)

Return the Unicode string of one character whose Unicode code is the integer i. For example, unichr(97) returns the string u’a’.

Answered By: Mark Byers

unichr is the function you are looking for – it takes a number and returns the Unicode character for that point.

for i in range(1000, 1100):
    print i, unichr(i)
Answered By: Sean Vieira

Try the following:

for i in range(1000, 1100):
    print i, unichr(i)
Answered By: Andrew Clark

You’ll want to use the unichr() builtin function:

for i in range(1000,1100):
    print i, unichr(i)

Note that in Python 3, just chr() will suffice.

Answered By: Sanqui

(Python 3) The following will give you the characters corresponding to an arbitrary unicode range

start_code, stop_code = '4E00', '9FFF'  # (CJK Unified Ideographs)
start_idx, stop_idx = [int(code, 16) for code in (start_code, stop_code)]  # from hexadecimal to unicode code point
characters = []
for unicode_idx in range(start_idx, stop_idx+1):
    characters.append(chr(unicode_idx))
Answered By: Bruno Degomme

One might appreciate this php-cli version:

It is using html entities and UTF8 decoding.

Recent version of XTERM and others terminals supports unicode chars pretty nicely 🙂

php -r 'for ($x = 0; $x < 255000; $x++) {echo html_entity_decode("&#".$x.";",ENT_NOQUOTES,"UTF-8");}'
Answered By: NVRM

Use chr instead of unichr to avoid an error message.

for i in range(1000, 1100):
    print i, chr(i)
Answered By: Eduardo Freitas

I stumbled across this rather old post and played a bit …

Here you find the Unicode blocks:
https://en.wikipedia.org/wiki/Unicode_block

And here I am printing some of the blocks

#!/usr/bin/env python3

ranges = list()

# Just some example ranges ... 
# Plane 0 0000–ffff - Basic Multilingual Plane
ranges.append((0x0000, 0x001f, 'ASCII (Controls)'))
ranges.append((0x0020, 0x007f, 'ASCII'))
ranges.append((0x0100, 0x017f, 'Latin Extended-A'))
ranges.append((0x0180, 0x024f, 'Latin Extended-B'))
ranges.append((0x0250, 0x02af, 'IPA Extensions'))
ranges.append((0x0370, 0x03FF, 'Greek'))
ranges.append((0x4e00, 0x9fff, 'CJK Unified Ideographs')) 

# Plane 1 10000–1ffff - Supplementary Multilingual Plane
ranges.append((0x1f600, 0x1f64f, 'Emoticons'))
ranges.append((0x17000, 0x187ff, 'Tangut'))

for r in ranges:
    # print the header of each range
    print(f'{r[0]:x} - {r[1]:x} {r[2]}')
    j = 1
    for i in range(r[0], r[1]):
        if j % 80 == 0:
            print('')
        j += 1

        print(f'{str(chr(i))}', end='')
    print('n')
Answered By: Gusiph
Categories: questions Tags:
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.