簡體   English   中英

如何將unicode轉義序列轉換為python字符串中的unicode字符

[英]How do convert unicode escape sequences to unicode characters in a python string

當我嘗試使用“unicode(head.contents [3])”來獲取標簽的內容時,我得到類似於此的輸出:“Christensen Sk \\ xf6ld”。 我希望轉義序列作為字符串返回。 如何在python中做到這一點?

假設Python將名稱視為普通字符串,您首先必須將其解碼為unicode:

>>> name
'Christensen Sk\xf6ld'
>>> unicode(name, 'latin-1')
u'Christensen Sk\xf6ld'

另一種實現此目的的方法:

>>> name.decode('latin-1')
u'Christensen Sk\xf6ld'

注意字符串前面的“u”,表示它是uncode。 如果您打印它,正確顯示重音字母:

>>> print name.decode('latin-1')
Christensen Sköld

順便說一句:必要時,您可以使用de“encode”方法將unicode轉換為例如UTF-8字符串:

>>> name.decode('latin-1').encode('utf-8')
'Christensen Sk\xc3\xb6ld'

給定帶有Unicode轉義字節的字節串b"\\N{SNOWMAN}"b"\\N{SNOWMAN}".decode('unicode-escape)將產生預期的Unicode字符串u'\☃'

我懷疑它正在正常工作。 默認情況下,Python以ASCII編碼顯示字符串,因為並非所有終端都支持unicode。 但是,如果你實際打印字符串,它應該工作。 請參閱以下示例:

>>> u'\xcfa'
u'\xcfa'
>>> print u'\xcfa'
Ïa

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM