python出现UnicodeEncodeError有可能产生的另一个原因
在使用python中,我们都有可能遇到如下的错误:
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-2: ordinal not in range(128)
一般的解决方法都是在文件开头处加多如下语句就可以了:
import sys
reload(sys)
sys.setdefaultencoding('utf8')
reload(sys)
sys.setdefaultencoding('utf8')
但是,我加了也提示这个错误,感觉很奇怪,本地跑得好好的,把它搬到线上Linux环境跑就提示这个错误。
后来查了下线上机器的语言设置,发现为:
[root@localhost ~]# echo $LANG
C
后来把环境语言设置成:export LANG='en_US.UTF-8' 或 export LANG="zh_CN.UTF-8" 此问题就解决了
当然如果你要用到中文,把这个也安装上:yum -y groupinstall chinese-support
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------