今天使用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