![](/img/trans.png)
[英]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.