2022年4月18日 星期一

【Python】編碼問題:UnicodeEncodeError: ‘ascii’ codec can’t encode characters

 https://kirin.idv.tw/%E3%80%90python%E3%80%91%E7%B7%A8%E7%A2%BC%E5%95%8F%E9%A1%8C%EF%BC%9Aunicodeencodeerror-ascii-codec-cant-encode-characters/

 

 

寫個小程式,檢查一下編碼狀況

import sys

print(sys.getdefaultencoding())
print(sys.stdin.encoding)
print(sys.stdout.encoding)
print(sys.stderr.encoding) 
 

最快的解決方式是在 bash 中執行以下指令,就可以正常的顯示

export PYTHONIOENCODING=utf-8

 

另一個方式則是在程式中處理,在程式中加入以下程式碼

import codecs
import sys

sys.stdout = codecs.getwriter("utf-8")(sys.stdout.detach())