系统编码设置导致错误:UnicodeEncodeError: 'ascii' codec can't encode characters in position
一:问题环境
ubuntu
python3
二:问题描述
print打印中文
读取的文本里含有中文
会报错:UnicodeEncodeError: ‘ascii’ codec can’t encode characters in position 13427-13428: ordinal not in range(128)
三:问题原因
3.1:python指定encoding
解决方案略
3.2:系统不支持中文
命令行下输入locale,查看系统当前支持的编码
LANG=en_US.UTF-8
LANGUAGE=
LC_CTYPE=zh_CN.UTF-8
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
参考博文https://blog.youkuaiyun.com/deepxl/article/details/17802451
解决方案:
命令行下执行如下两条命令:
> apt-get install locales
> dpkg-reconfigure locales # 此命令会进入界面
在界面中,选中en_US.UTF-8和zh_CN.UTF-8 (点击空格键 为选中),然后tab键选中,回车键确认;进入最终确认页面,显示选中的编码,tab键选中,回车键确认。完成。