如何从格式化字符串打印 unicode 字符?使用以下示例,我有一个错误(python3): python -c 'print(u"\u{}".format("2665"))' File "<string>", line 1SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 0-1: truncated \uXXXX escape
2 回答
九州编程
TA贡献1785条经验 获得超4个赞
"\u{}"
抛出该错误,因为字符串表示不应该与变量一起使用;它是一个字面的、直接的值。就像您不能做并期望在和之间有一个制表符一样。\unnnn
x = 't'; print ('a\{}b'.format(x))
a
b
要打印任何 Unicode 字符,请立即将其文字代码输入字符串本身:
print ('Hello \u2665 world')
结果:
Hello ♥ world
– 请注意,您不需要u
字符串本身的前缀;这是 Python 2.x'ism – 或者,如果您想在变量中提供字符值:
print ('Hello {:c} world'.format(0x2665))
其中(1):c
强制值的字符表示,以及(2)您需要指出值本身是十六进制的。(作为字符串表示是总是以十六进制)。\unnnn
红糖糍粑
TA贡献1815条经验 获得超6个赞
这有点尴尬,但您可以使用原始字符串文字,编码,然后使用unicode_escape编码解码:
print(r"\u{}".format("2665").encode().decode('unicode_escape'))
# ♥
添加回答
举报
0/150
提交
取消