# -*- coding: utf8 -*-
s = '\xd6\xd0\xce\xc4'
print s
的代碼打印打印將字符串轉換爲Python中的Unicode?
中文
不期望其摘錄。從字典中我可以看到s
不是一些ASCII字符,因爲序號大於128.但是這就是爲什麼print
會自動將字符串解碼爲utf8並打印出來(根據最初的編碼語句)?
更新:
我宣佈爲gbk的編碼,但保留文件的編解碼器爲UTF8。一個異常引發:
SyntaxError: 'gbk' codec can't decode bytes in position 8-9: illegal multibyte s
equence
這表明一個編解碼轉換失敗。哪裏?
這就是問題所在,我從'gbk'解碼。字節是'gbk'編解碼器。但上面的代碼可以正確運行並打印原始字符。 – zoujyjs
編解碼器變換必定發生在某處。這就是爲什麼我猜測印刷品完成了這項工作。查看我的更新。 – zoujyjs
@zoujyjs:嗯,我只能重複一遍自己:Python 2.x中的'print'會將你給它的字節發送給終端。然後你的終端將使用一些編解碼器來解釋它的輸入,但它不在終端用它獲得的字節做什麼的Python控制之下。如果一切設置正確,'sys.stdout.encoding'應該顯示你的終端使用什麼編解碼器(或假裝使用)。 –