首页 > 编程语言 > 详细

解决python3读写中文txt时UnicodeDecodeError : 'ascii' codec can't decode byte 0xc4 in position 5595: ordinal not in range(128) on line 0的问题

时间:2019-02-28 20:52:56      阅读:221      评论:0      收藏:0      [点我收藏+]

今天使用python3读写含有中文的txt时突然报了如下错误,系统是MAC OS,iDE是pycharm:

UnicodeDecodeError : ‘ascii‘ codec can‘t decode byte 0xc4 in position 5595: ordinal not in range(128) on line 0

按理说python3的默认编码是unicode,不应该出现这种错误,排查以后发现问题及解决方案如下:

import locale
print(locale.getpreferredencoding())
>>> US-ASCII

也就是说系统默认的打开文本文档的编码变成了"US-ASCII",需要修改环境变量.

打开终端,输入locale,可以查看到自己本机的默认语言编码设置.在终端输入以下命令:

vim ~/.bash_profile
(如果你使用的是zsh,就open .zshrc)

然后在上面打开的文件里加入如下的环境变量:

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=C

然后在终端输入source ~/.bash_profile使修改生效,就可以成功读写中文txt了.

解决python3读写中文txt时UnicodeDecodeError : 'ascii' codec can't decode byte 0xc4 in position 5595: ordinal not in range(128) on line 0的问题

原文:https://www.cnblogs.com/limitlessun/p/10452924.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!