今天使用python3讀寫含有中文的txt時忽然報了以下錯誤,系統是MAC OS,iDE是pycharm:python
UnicodeDecodeError : 'ascii' codec can't decode byte 0xc4 in position 5595: ordinal not in range(128) on line 0vim
按理說python3的默認編碼是unicode,不該該出現這種錯誤,排查之後發現問題及解決方案以下:bash
import locale print(locale.getpreferredencoding())
>>> US-ASCII
也就是說系統默認的打開文本文檔的編碼變成了"US-ASCII",須要修改環境變量.編碼
打開終端,輸入locale,能夠查看到本身本機的默認語言編碼設置.在終端輸入如下命令:spa
vim ~/.bash_profile
(若是你使用的是zsh,就open .zshrc)
而後在上面打開的文件里加入以下的環境變量:code
LANG="zh_CN.UTF-8"
LC_COLLATE="zh_CN.UTF-8"
LC_CTYPE="zh_CN.UTF-8"
LC_MESSAGES="zh_CN.UTF-8"
LC_MONETARY="zh_CN.UTF-8"
LC_NUMERIC="zh_CN.UTF-8"
LC_TIME="zh_CN.UTF-8"
LC_ALL=Cblog
而後在終端輸入source ~/.bash_profile使修改生效,就能夠成功讀寫中文txt了.ci