一次重启服务器后,supervisor接管的python脚本中的函数open()和print()都会报下面的编码错误:
UnicodeEncodeError: 'ascii' codec can't encode
使用的是python3,按理说编码都会默认utf-8,而且本地运行的python脚本并没有这个问题。
经大佬指点,增加环境变量export LC_ALL="en_US.UTF-8"后,再重启supervisor,问题解决
LC_ALL相关信息:
1.Locale说明
Locale是一个软件在运行时的语言环境,。是根据计算机用户所使用的语言,所在国家或者地区,以及当地的文化传统所定义的。它包括语言(Language), 地域 (Territory) 和字符集(Codeset)。
一个locale的书写格式为: 语言[地域[.字符集]]。完全的locale表达方式是 [语言[地域][.字符集] [@修正值]。例如:
zh_CN.GB2312 => 中文_中华人民共和国+国标2312字符集。
2.Locale查看
(1)locale把按照所涉及到的文化传统的各个方面分成12个大类
[root@TDExpress1620_Sles11:~]$ locale
LANG=en_US.UTF-8 LC_CTYPE="en_US.UTF-8" #语言符号及其分类
LC_NUMERIC="en_US.UTF-8" #数字
LC_TIME="en_US.UTF-8" #时间显示格式
LC_COLLATE=&#