python 2 7中文亂碼

2021-09-25 07:10:30 字數 1322 閱讀 7100

寫python的環境是python3.7,執行python的環境是python2.7,

原本完美顯示的中文小提示一**驗喂了狗,力挽狂瀾為顯示中文義不容辭。

亂碼原因:

編碼和解碼時用了不同或者不相容的字符集。

例如:用utf-8編碼儲存,用gbk解碼顯示會造成亂碼。

參考自:十分鐘搞清字符集和字元編碼(這裡的為什麼會亂碼講解得非常精彩)

中文顯示亂碼原因:

資料採用非unicode且非gbk的編碼格式。

參考自:python 2.7 學習筆記 中文處理 (關於 decode 方法和 encode 方法 講得特別好)

思路即上述參考的紅字:檔案宣告為utf-8,且用utf-8的編碼儲存的原始檔,但是windows的本地預設編碼是cp936,也就是gbk編碼,所以在控制台直接列印utf-8的字串就顯示亂碼了。

(即上述的亂碼例子:用utf-8編碼儲存,用gbk解碼顯示會造成亂碼。)

test.py原始檔:

# coding=utf-8

import sys

reload(sys)

sys.setdefaultencoding('utf-8')

def print_utf8(arg):

print(arg.decode('utf-8').encode(sys.getfilesystemencoding()))

print_utf8('輸出中文')

unicode編碼做中**將utf-8編碼的字串轉換成unicode編碼,再將unicode編碼的字串轉換成系統編碼的格式。

因為試了一下,本地電腦可以直接開啟py顯示中文,a電腦直接執行py檔案還是顯示亂碼(因為a電腦系統預設編碼格式不是gbk??)

因此用批處理呼叫py檔案,將活動**頁(字符集的別名)編號設定為gbk

字符集(character set)是多個字元的集合。

ascii(american standard code for information interchange)美國資訊交換標準**,主要用於顯示現代英語和其他西歐語言。

gbk字符集,中文名國家標準擴充套件字符集(gb=guóbiāo國標;k=kuò擴,即擴充套件)

字符集,**頁,字元編碼

修改windows的預設編碼

python2 7中文編碼 python2 7

我從外部api中獲得了乙個字串 u4ece u8d77 u70b9 u5411 u6b63 u5357 u65b9 u5411 u51fa u53d1,u884c u9a76170 u7c73,u76f4 u884c u8fdb u5165 u4e2d u5173 u6751 u4e1c u8def...

python2 7 中文顯示

基於學習廖雪峰大神的python教程,在其中的乙個迴圈中,中文不能正常顯示。以下是那段迴圈 birth raw input birth if birth 2000 print 00前 else print 00後 執行後 出現以下錯誤 請教了一系列的大神,牛人後,是編碼格式的問題。之前我陷入的誤區 ...

Python 2 7之中文亂碼問題

學習python一段時間了,一直沒有寫過部落格。就從今天開始吧!python 3之後當然不存在亂碼問題了。python 2的亂碼問題有時就有點頭疼了。均為在windows下測試 示例 儲存為test1.py 報錯資訊如下 解決辦法 我將 儲存為test.py,執行 不出所料,第八行輸出的為亂碼,第九...