簡體   English   中英

無法在python中將unicode轉換為utf-8

[英]Cannot convert unicode to utf-8 in python

這一定是一項瑣碎的任務,但我無法處理。 我有看起來像這樣的json。

        {'
          city': u'\\u0410\\u0431\\u0430\\u043a\\u0430\\u043d', 
        'language':{
          u'\\u0410\\u043d\\u0433\\u043b\\u0438\\u0439\\u0441\\u043a\\u0438\\u0439': 5608,      
          u'\\u0418\\u0442\\u0430\\u043b\\u044c\\u044f\\u043d\\u0441\\u043a\\u0438\\u0439': 98
        }
    },

我正在嘗試將unicode字符串轉換為utf-8。

string=u'\u0410\u0431\u0430\u043a\u0430\u043d'
string.encode('utf-8')

我有

'\xd0\x90\xd0\xb1\xd0\xb0\xd0\xba\xd0\xb0\xd0\xbd'

代替:

u'Абакан'

我究竟做錯了什么?

我究竟做錯了什么?

不打印。

當您僅在Python REPL中評估字符串時,將獲得其repr 這是'\\xd0\\x90\\xd0\\xb1\\xd0\\xb0\\xd0\\xba\\xd0\\xb0\\xd0\\xbd' 打印時,您會得到Абакан

print(string.encode('utf-8'))

正如@Amadan所說,您只需要打印字符串即可。

但是,為什么打印字符串可以解決問題?

答案是,如果您鍵入string + Enter,這將導致顯示對象stringrepr()的表示形式。 在運行(在Python 3.x或打印(串))打印字符串,你會得到一個人類可讀的字符串表示- str() -的string

>>> converted = string.encode('utf8')
>>> converted
'\xd0\x90\xd0\xb1\xd0\xb0\xd0\xba\xd0\xb0\xd0\xbd'
>>> print converted
Абакан
>>> print repr(converted)
'\xd0\x90\xd0\xb1\xd0\xb0\xd0\xba\xd0\xb0\xd0\xbd'
>>> print str(converted)
Абакан
>>> 

進一步閱讀: Python中__str__和__repr__之間的區別

暫無
暫無

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

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