日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux 运行python 看不到异常信息_linux python运行报编码错误

發布時間:2025/3/12 linux 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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运行报编码错误的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。