python3 UnicodeEncodeError: ‘ascii’ codec can’t encode characters in position

上次遇到相關的bug 是在python 2.x,這次是在python 3遇到,解法差不多,其實都是 lang 系統變數造成的。

上次的問題:err ‘ascii’ codec can’t encode character u’\u7684′ in position 7: ordinal not in range(128)
https://stackoverflow.max-everyday.com/2017/03/err-ascii-codec-cant-encode-character-uu7684-in-position-7-ordinal-not-in-range128/


這次在 ubuntu 上 python 2 和 python 3 輸出 sys.stdout.encoding 的結果都是:’ANSI_X3.4-1968′

python 程式碼:

import sys
print(sys.stdout.encoding)

 

解法是執行指令:

export LC_ALL='en_US.utf8'

 

網路上有人寫是

export LANG='en_US.utf8'

實測的結果是不行,必需使用 LC_ALL

 

如果是使用ubuntu 請修改 ~/.bashrc

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *