如圖,為什么最后 不能以中文顯示呢?
Python中字符集轉換問題問題
慕俠2389804
2018-07-17 12:14:33
TA貢獻1886條經驗 獲得超2個贊
print出來就行了,否則你看到的就是原始的十六進制編碼。類似的還有list和tuple的print,你會發現一樣是這樣。
In [2]: lst = ['中文1', '中文2', '測試3'] In [3]: print lst ['\xe4\xb8\xad\xe6\x96\x871', '\xe4\xb8\xad\xe6\x96\x872', '\xe6\xb5\x8b\xe8\xaf\x953'] In [4]: print ' '.join(lst) 中文1 中文2 測試3
這個不是BUG,顯示也是正確的,這是python2的機制。如果你用的是python3,那么情況大不一樣,python3強制unicode編碼,直接預覽list/tuple之類的看到的就是解碼過的字符。
fengyu@fengyu-pc ~ ipython3 Python 3.4.0 (default, Apr 11 2014, 13:05:11) Type "copyright", "credits" or "license" for more information. IPython 1.2.1 -- An enhanced Interactive Python. ? -> Introduction and overview of IPython's features. %quickref -> Quick reference. help -> Python's own help system. object? -> Details about 'object', use 'object??' for extra details. In [1]: lst = ['中文1', 'English', '測試3'] In [2]: lst Out[2]: ['中文1', 'English', '測試3'] In [3]:
TA貢獻2019條經驗 獲得超9個贊
print str1.decode(utf8).encode('gbk'),其中utf8不定,要看實際的編碼方式(先decode到unicode, 然后再encode到gbk
舉報