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环境中的问题,通过以下办法解决。
  1. # encoding=utf8  
  2. import sys  
  3.   
  4. reload(sys)  
  5. sys.setdefaultencoding('utf8')   

但我在python3环境下为什么一直错误呢?  

通过修改代码中的编解码中文等操作均无效,折腾半天考虑 有没有是linux语言环境变量的问题

检查当前shell环境

$ echo $SHELL

csh

检查语言环境变量

$ env |grep LANG
LANG=zh

将语言环境变量修改为

setenv LANG en_US.UTF-8

问题解决

原文地址:https://www.cnblogs.com/jonyq/p/5938961.html