【发布时间】:2017-05-25 17:53:31
【问题描述】:
使用 Python3 来减少处理 Unicode 时的痛苦,我可以像这样打印一个 UTF-8 字符:
>>> print (u'\u1010')
တ
但是当尝试对 UTF-16 执行相同操作时,假设 U+20000、u'\u20000' 是初始化字符的错误方式:
>>> print (u'\u20000')
0
>>> print (list(u'\u20000'))
['\u2000', '0']
它改为读取 2 个 UTF-8 字符。
我也尝试过大 U,即u'\U20000',但它会引发一些转义错误:
>>> print (u'\U20000')
File "<stdin>", line 1
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 0-6: truncated \UXXXXXXXX escape
字符串外的大 U 也不起作用:
>>> print (U'\u20000')
0
>>> print (U'\U20000')
File "<stdin>", line 1
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 0-6: truncated \UXXXXXXXX escape
【问题讨论】:
-
\U符号我相信需要 8 位数字。试试'\U00020000'。
标签: python string unicode character utf-16