将 unicode 更改为实际字符?

Change unicode to actual character?

我有这个字符串 \u2605,它编码为 ,我想更改它以便:

  1. 它打印 或“?”命令提示符替换,而不是 \u2605

  2. 我可以将字符串作为 而不是 \u2605

  3. 发送到函数中

如何 change/encode 字符串?

您可以将字节传递给 decode('unicode-escape'):

s = '\u2605 Amazing \u2605'

s = bytes(s, 'utf8').decode( 'unicode-escape' )

print(s)
# ★ Amazing ★

注意:不确定这是否是你的问题,但decode( 'unicode-escape' )不处理未转义的非ascii,所以像s = '\u2605 Ama ★ zing \u2605' 会导致问题。参见 issue here。在这种情况下,一个可能的解决方案是转义整个字符串,然后解码:

s = s.encode('ascii','backslashreplace').decode( 'unicode-escape' )