python3在linux下的编码错误
$ python3 aaa.py 'ascii' codec can't encode characters in position 162-165: ordinal not in range(128)
aaa.py 文件已经设置
#!/usr/bin/env python3
# coding = 'utf-8'
但执行总是报错
'ascii' codec can't encode characters in position 162-165: ordinal not in range(128)
经过网上查询此种错误基本都是2.7环境中的问题,通过以下办法解决。
- # encoding=utf8
- import sys
- reload(sys)
- sys.setdefaultencoding('utf8')
但我在python3环境下为什么一直错误呢?
通过修改代码中的编解码中文等操作均无效,折腾半天考虑 有没有是linux语言环境变量的问题
检查当前shell环境
$ echo $SHELL
csh
检查语言环境变量
$ env |grep LANG
LANG=zh
将语言环境变量修改为
setenv LANG en_US.UTF-8
问题解决