繁体   English   中英

使用\\ U表示法调试打印Unicode字符串

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM