簡體   English   中英

Python:不需要的unicode類型

[英]Python: unwanted unicode type

我有unicode字符串(來自API查詢),應該已經編碼為常規ascii字符串(因為它們已經包含unicode表示形式)。 如何更改編碼而不實際更改要編碼的字符?

以機智:

string = '165\xc2\xba F' # What I want
print(string)

my_string = u'165\xc2\xba F' # What I have
print(my_string)

PS我意識到\\xc2\\xba實際上是序數而不是度數符號( \\xc2\\xb0 ),但這就是我得到的。

您擁有的不是“ unicode”,而是所需字符串的UTF-8編碼的字節序列。

您可以使用“ latin-1”編解碼器檢索文本,以透明方式將字節序列傳輸到字節字符串(從unicode字符串),然后將它們從UTF-8正常解碼:

In[]: u'165\xc2\xba F'.encode("latin1").decode("utf-8")
Out[]: u'165º F'

為什么latin-1編解碼器為何如此特殊並能在這種情況下工作,請參見此處的第二段: https : //docs.python.org/3/library/codecs.html#encodings-and-unicode

當您有空閑時間時,閱讀這篇有關Unicode的不錯的文章以了解什么是編解碼器以及unicode中的文本是什么意思將很有用。

暫無
暫無

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

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