python 如何打印所有unicode字符?

rqmkfv5c  于 2023-02-11  发布在  Python
关注(0)|答案(8)|浏览(171)

我想打印一些unicode字符,但u'\u1000'最高为u'\u1099'。这不起作用:

for i in range(1000,1100):
    s=unicode('u'+str(i))
    print i,s
vbopmzt1

vbopmzt11#

你可能需要使用unichr()内置函数:

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

注意,在Python 3中,chr()就足够了。

hlswsv35

hlswsv352#

使用unichr:

s = unichr(i)

来自文档:
unichr(i)
返回Unicode代码为整数i的字符的Unicode字符串。例如,unichr(97)返回字符串u'a '。

dddzy1tm

dddzy1tm3#

请尝试以下操作:

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

aoyhnmkz4#

unichr是您要查找的函数-它接受一个数字并返回该点的Unicode字符。

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

yzuktlbb5#

(Python 3)下面将给予与任意unicode范围相对应的字符

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))
rekjcdws

rekjcdws6#

使用chr代替unichr以避免出现错误消息。

for i in range(1000, 1100):
    print i, chr(i)
mdfafbf1

mdfafbf17#

我偶然发现了这个相当老的职位和发挥有点...
这里你可以找到Unicode块:
https://en.wikipedia.org/wiki/Unicode_block
现在我打印出一些积木

#!/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')
0kjbasz6

0kjbasz68#

您可能会喜欢这个php-cli版本:
它使用html实体和UTF8解码。
最近版本的XTERM和其他终端非常好地支持unicode字符:)

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

相关问题