将 unicode 更改为实际字符?
Change unicode to actual character?
我有这个字符串 \u2605
,它编码为 ★
,我想更改它以便:
它打印 ★
或“?”命令提示符替换,而不是 \u2605
我可以将字符串作为 ★
而不是 \u2605
发送到函数中
如何 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' )
我有这个字符串 \u2605
,它编码为 ★
,我想更改它以便:
它打印
★
或“?”命令提示符替换,而不是\u2605
我可以将字符串作为
★
而不是\u2605
发送到函数中
如何 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' )