我試過print a_str.decode("utf-8")
,print uni_str
,print uni_str.decode("utf-8")
,print uni_str.encode("utf-8")
..這些方法處理Python中的Unicode字符串有什麼區別?
但只有第一個作品。
>>> print '\xe8\xb7\xb3'.decode("utf-8")
跳
>>> print u'\xe8\xb7\xb3\xe8'
è·³è
>>> print u'\xe8\xb7\xb3\xe8'.decode("utf-8")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/encodings/utf_8.py", line 16, in decode
return codecs.utf_8_decode(input, errors, True)
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-3: ordinal not in range(128)
>>> print u'\xe8\xb7\xb3\xe8'.encode("utf-8")
è·³è
我真的很困惑如何正常顯示Unicode字符串。如果我有這樣的字符串: a=u'\xe8\xb7\xb3\xe8'
,如何打印a
?
u'\ xe8 \ xb7 \ xb3 \ xe8'是è·³è;你爲什麼期望它打印其他東西?跳過的形式是u'\ u8df3'。 – prosfilaes 2012-08-05 07:18:15
你的第一個是正確的。那個有什麼問題? – BrenBarn 2012-08-05 07:18:44