Python 程式內的字串都是以 Unicode 方式儲存,當輸出到 Terminal 上面時,Python 會檢查終端機使用的編碼,並將 Unicode 字串轉成 Terminal 支援的編碼,當我們在 Linux 下執行時會轉換成 UTF8,但如果是在 Windows 的命令提示字元下執行 Python,則會轉成所謂的 CP950 編碼,在這個轉換的過程中發生錯誤,但如果今天你直接將字串存成檔案或做其他操作,是不會有問題的。
解決方法有兩種,你可以將命令提示字元的編碼設為 UTF8,或是在 Python 輸出之前先將字串編碼成 CP950 並忽略錯誤字元,個人建議將命令提示字元的編碼設為 UTF8,雖然每次開啟命令提示字元都要重設一次,但如果從程式端為 Windows 做調整,這支程式要跨平台使用時反而可能出問題。
在命令提示字元輸入這段指令,即可將編碼設為 UTF8,但每次開啟命令提示字元都要再輸入一次:
chcp 65001(65001 是 UTF8 的編號)
如果你希望從 Python 下手,則可以參考以下範例:
s = "Hello 你好"
print(s.encode("utf8").decode("cp950", "ignore"))
沒有留言:
張貼留言