从格式化字符串打印 unicode

如何从格式化字符串打印 unicode 字符?使用以下示例,我有一个错误(python3):


 python -c 'print(u"\u{}".format("2665"))'

  File "<string>", line 1

SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 0-1: truncated \uXXXX escape


慕姐8265434
浏览 198回答 2
2回答

九州编程

"\u{}"抛出该错误,因为字符串表示不应该与变量一起使用;它是一个字面的、直接的值。就像您不能做并期望在和之间有一个制表符一样。\unnnnx = 't'; print ('a\{}b'.format(x))ab要打印任何 Unicode 字符,请立即将其文字代码输入字符串本身:&nbsp;print&nbsp;('Hello&nbsp;\u2665&nbsp;world')结果:Hello&nbsp;♥&nbsp;world– 请注意,您不需要u字符串本身的前缀;这是 Python 2.x'ism – 或者,如果您想在变量中提供字符值:print&nbsp;('Hello&nbsp;{:c}&nbsp;world'.format(0x2665))其中(1):c强制值的字符表示,以及(2)您需要指出值本身是十六进制的。(作为字符串表示是总是以十六进制)。\unnnn

红糖糍粑

这有点尴尬,但您可以使用原始字符串文字,编码,然后使用unicode_escape编码解码:print(r"\u{}".format("2665").encode().decode('unicode_escape'))#&nbsp; ♥
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python