windows下執行Python出現UnicodeEncodeError錯誤
最近決定放棄R改用Python。在WIN 7安裝了Python 3.5,想說執行程式測看看。拿了結巴分詞的範例執行,沒想到出現以下的錯誤
嘗試了一下,發現是因為範例程式中有簡體中文。當我把簡體中文換成正體中文,就正常可執行。
想說Python支援Unicode,我的檔案也確定是Unicode編碼,怎會有這種錯誤?查了一下,嘗試了幾種作法依舊無法解決。還有人提到是windows的問題,無解決方案…
一時間無法解決,乾脆繞過改用VM。於是乎在自己的FreeBSD上安裝Python。
沒想到,在FreeBSD執行也出現類似的訊息…
看來,之前的問題應該WIN7應該不是主要因素。再度查了一下,原來是環境設定的問題~
執行以下指令,就可在FreeBSD下正常執行
於是乎,想說windows下的錯誤,應該也是一樣的狀況吧?
查了一下如何改CMD的編碼方式,原來有個chcp指令可改變編碼(code page)
chcp有兩個功能
如此,就可以正常的在windows下執行結巴分詞的範例程式了~
UnicodeEncodeError: 'cp950' codec can't encode character '\u6765' in position 14: illegal multibyte sequence
嘗試了一下,發現是因為範例程式中有簡體中文。當我把簡體中文換成正體中文,就正常可執行。
想說Python支援Unicode,我的檔案也確定是Unicode編碼,怎會有這種錯誤?查了一下,嘗試了幾種作法依舊無法解決。還有人提到是windows的問題,無解決方案…
一時間無法解決,乾脆繞過改用VM。於是乎在自己的FreeBSD上安裝Python。
沒想到,在FreeBSD執行也出現類似的訊息…
UnicodeEncodeError: 'ascii' codec can't encode character '\u6211' in position 11: ordinal not in range(128)
看來,之前的問題應該WIN7應該不是主要因素。再度查了一下,原來是環境設定的問題~
執行以下指令,就可在FreeBSD下正常執行
setenv LC_ALL zh_TW.UTF-8
於是乎,想說windows下的錯誤,應該也是一樣的狀況吧?
查了一下如何改CMD的編碼方式,原來有個chcp指令可改變編碼(code page)
chcp有兩個功能
- 顯示目前編碼
- 設定編碼
chcp 65001
註:設定後,請記得在CMD中選內容/字形,修改字型如此,就可以正常的在windows下執行結巴分詞的範例程式了~
留言
今天看到你這篇解決了我的問題
非常感謝
請受小的一拜
是在VScode執行python檔案。因為沒有open相關指令(只有print)。所以是在cmd下輸入指令: chcp65001。
也有更改VScode的編碼系統,可是還是沒有解決問題,想請教還有什麼方式可以解決嗎?謝謝。