#1.先看**
####為什麼以utf-8字元列印出來?我的中文呢?#coding=utf-8
(當你不指定編碼格式,系統預設編碼是ascii,
意味著如果你的py檔案中有中文,那麼執行會報錯)
defa
(local)
(type
(local)
("hahaha哈哈哈"
,local)
if __name__ ==
"__main__"
(sys.getdefaultencoding())
(chardet.detect(localpath)
(localpath)
a(localpath)
#2.查資料
徹底搞懂python的字元編碼
python(字元編碼)
###所學知識:
python的encode可以將unicode編碼轉換為utf-8或者gbk
decode可以就將utf-8或者gbk轉換為unicode
注意,utf-8不能直接轉為gbk,只能先到unicode,再從unicode到gbk
#coding=utf-8
str1 = '中文' #(這是utf-8的str)
str2 = str1.decode('utf-8') #將utf-8編碼的str1轉換為unicode型別的字串
#str2的str2.encode('gbk') #將unicode字元轉換為gbk編碼的str
【原創】python中文編碼問題深入分析(二):print列印中文異常及顯示亂碼問題分析與解決
###列印亂碼可能有兩個原因:
1.如果變數是unicode型別,控制台會將此變數轉換為系統自帶的編碼,從而輸出中文。
但是,如果系統編碼是ascii呢?使用sys.stdout.encoding檢視。
所以你可以將unicode轉換為utf-8或者gbk然後輸出,當然,轉換那種編碼,需要與你的系統編碼一致。
2.py使用的編碼和系統的編碼不一致,很抱歉,不是報錯就是亂碼。
比如py用gbk,但是系統是utf-8,哦,亂碼了。
#3.解決問題
我的問題根源並不是編碼,而是print()
當我將『,』替換為『+』,哦,世界清淨了。
為什麼?
不知道。等我知道了再來更新吧。
Python2編碼問題
以下內容說的都是 python 2.x 版本 我們看到的輸入輸出都是 字元 characters 計算機 程式 並不能直接處理,需要轉化成位元組資料 bytes 因為程式只能處理 bytes 資料。例如 檔案 網路傳輸等,處理的都是 bytes 資料 二進位制數字。孤立的 byte 是毫無意義的,所...
Python2編碼問題
以下內容說的都是 python 2.x 版本 我們看到的輸入輸出都是 字元 characters 計算機 程式 並不能直接處理,需要轉化成位元組資料 bytes 因為程式只能處理 bytes 資料。例如 檔案 網路傳輸等,處理的都是 bytes 資料 二進位制數字。孤立的 byte 是毫無意義的,所...
python2 編碼問題
coding utf 8 import sys reload sys sys.setdefaultencoding utf8 第一行是讓 以utf8格式解析 後面三行是讓python直譯器在decode時候用utf8進行decode 這樣所有字串都是utf8的了,如果遇到非utf8字串可以用deco...