解决python3读写中文txt时UnicodeDecodeError : 'ascii' codec can't decode byte 0xc4 in position 5595: ordinal

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

相关文章
相关标签/搜索