linux 运行python 看不到异常信息_linux python运行报编码错误
一次重啟服務器后,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="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" #對locale自身包含信息的概述
LC_ALL=en_US.UTF-8
(2)查看標準字符集列表
[root@TDExpress1620_Sles11:~]$ locale -a
zh_CN
zh_CN.gb18030
zh_CN.gbk
zh_CN.utf8
zh_HK
zh_HK.utf8
zh_SG
zh_SG.gbk
zh_SG.utf8
zh_TW
zh_TW.euctw
zh_TW.utf8
zu_ZA
zu_ZA.utf8
常用字符集:en_US.utf8、zh_CN.gb2312、zh_CN.gbk、zh_CN.utf8等
3.Locale的設定
LC_ALL和LANG優先級的關系:LC_ALL > LC_* >LANG
(1)如果需要一個純中文的系統的話,設定LC_ALL= zh_CN.XXXX即可。或者設定LANG=zh_CN.XXXX也可以,但是LC_不要有任何特殊設定才可以(因為LC_優先級高)。
(2)如果需要個性化的環境,例如只想要一個可以輸入中文的環境,而保持菜單、標題,系統信息等等為英文界面,那么只需要設定LANG=en_US.XXXX,然后 LC_CTYPE=zh_CN.XXXX就可以了。
(3)假如什么也不做的話,也就是LC_ALL,LANG和LC_*均不指定特定值的話,系統將采用POSIX作為lcoale,也就是C locale。
4.查看與設定字符集實踐
(1)查看當前系統字符集三種方式(LC_ALL、LC_CTYPE和LANG),以查看LANG為例:
[root@TDExpress1620_Sles11:~]$ echo $LANG
en_US.UTF-8 [root@TDExpress1620_Sles11:~]$ env |grep -i LANG
LANG=en_US.UTF-8 [root@TDExpress1620_Sles11:~]$ locale |grep -i LANG
LANG=en_US.UTF-8
(2)更改系統字符集
export LANG=
或者
export LC_ALL=
備注:直接執行上述命令,可以臨時修改系統字符集。如果寫入環境變量可以永久改變字符集。
(3)取消當前系統字符集(設定為空)
unset LANG
備注:直接執行上述命令,可以臨時修改系統字符集。如果寫入環境變量可以永久改變字符集。
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的linux 运行python 看不到异常信息_linux python运行报编码错误的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JAVA WEB篇3——JSP
- 下一篇: java水泡_JAVA图像处理系列(八)