[英]Concatenating Unicode with string: print '£' + '1' works, but print '£' + u'1' throws UnicodeDecodeError
[英]Debug print Unicode string with \U notation
我有一本字典,其中包含带Unicode字符的字符串:
d = {'middle': "middle is:\U0001f004."}
出于调试目的,我想打印d
并使用相同的符号获取输出:
print(d)
{'middle': "middle is:\U0001f004."}
我怎么做?
为此,Python 3具有ascii
函数。 ASCII字符集以外的任何字符都将显示为转义码:
>>> d = {'middle': "middle is:\U0001f004."}
>>> d
{'middle': 'middle is:🀄.'}
>>> print(ascii(d))
{'middle': 'middle is:\U0001f004.'}
您可以编码字典的字符串表示形式,然后使用unicode_escape
进行编码。 这将返回一个bytes
对象,您将要再次对其进行解码以获取字符串。
d = {'middle': 'middle is:\U0001f004.'}
print(str(d).encode('unicode_escape').decode())
输出:
{'middle': 'middle is:\U0001f004.'}
这应该适用于各种各样的情况,但是一般来说,确保打印的字符串与用于创建任何数据结构的代码匹配是不可能的。
输出字符串时,请使用unicode_escape
进行编码,如下所示: string.encode('unicode_escape')
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.