【发布时间】:2018-04-03 17:54:50
【问题描述】:
我想要一个包含来自 utf-8 的阿姆哈拉字母的列表。字符范围从 U+1200 到 U+1399。我正在使用 Windows 8。我遇到了SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 0-5: truncated \UXXXXXXXX escape。
我试过这个:
[print(c) for c in u'U1399']
如何列出字符?
【问题讨论】:
-
您在此处粘贴的是与您所询问的完全不同的语法错误 - 有一个未关闭的
',并且任何地方都没有 Unicode 转义。 -
猜想,你混淆了
\u和\U。第一个需要 4 个十六进制数字,第二个需要 8 个十六进制数字。所以你可以使用\u1200或\U00001200,但\U1200会尝试将接下来的4个字符视为4个数字,这将是一个错误。 -
您编辑的版本中仍然没有任何 Unicode 转义序列,现在根本不会产生任何错误。
-
附带说明,对打印等副作用使用列表推导并忽略结果是非常具有误导性且不习惯的。只需使用
for声明即可。