无法在 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'Абакан'
我做错了什么?
What am I doing wrong?
不打印。
当你在 Python REPL 中评估一个字符串时,你将得到它的 repr
。这是'\xd0\x90\xd0\xb1\xd0\xb0\xd0\xba\xd0\xb0\xd0\xbd'
。当你打印它时,你会得到 Абакан
.
print(string.encode('utf-8'))
正如@Amadan 所说,您只需要打印字符串即可。
但是为什么打印字符串可以解决问题?
答案是,如果您键入 string
+ Enter,这将导致显示 repr()
the of the object string
; while running print string (or print (string) in Python 3.x) you will get a human readable string representation -str()
- of 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)
Абакан
>>>
进一步阅读:Difference between __str__ and __repr__ 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'Абакан'
我做错了什么?
What am I doing wrong?
不打印。
当你在 Python REPL 中评估一个字符串时,你将得到它的 repr
。这是'\xd0\x90\xd0\xb1\xd0\xb0\xd0\xba\xd0\xb0\xd0\xbd'
。当你打印它时,你会得到 Абакан
.
print(string.encode('utf-8'))
正如@Amadan 所说,您只需要打印字符串即可。
但是为什么打印字符串可以解决问题?
答案是,如果您键入 string
+ Enter,这将导致显示 repr()
the of the object string
; while running print string (or print (string) in Python 3.x) you will get a human readable string representation -str()
- of 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)
Абакан
>>>
进一步阅读:Difference between __str__ and __repr__ in Python