python 中文亂碼

2022-04-15 09:58:35 字數 744 閱讀 5503

原文**:

亂碼原因:

因為你的檔案宣告為utf-8,並且也應該是用utf-8的編碼儲存的原始檔。但是windows的本地預設編碼是cp936,也就是gbk編碼,所以在控制台直接列印utf-8的字串當然是亂碼了。

解決方法:

在控制台列印的地方用乙個轉碼就ok了,列印的時候這麼寫:

print myname.decode('utf-8').encode('gbk')

比較通用的方法應該是:

import sys

type = sys.getfilesystemencoding()

print myname.decode('utf-8').encode(type)

**)解決unicodedecodeerror: 'ascii' codec can't decode byte 0xe5……..

你需要的是讓編碼用實際編碼而不是 ascii

1. 

對需要 str->unicode 的**,可以在前邊寫上 

import sys 

reload(sys) 

sys.setdefaultencoding('utf8') 

把 str 編碼由 ascii 改為 utf8 (或 gb18030)

2. 

python3 區分了 unicode str 和 byte arrary,並且預設編碼不再是 ascii

python中文亂碼

關於中文亂碼,老夫已經遇到無數次,遍尋良方,也使出無數種招數。總結一下,費話不多說,python中文亂碼的根源只有乙個,字元編碼不統一!import sys reload sys sys.setdefaultencoding utf 8 上述語句編譯器可能會報錯,不影響,意思是2.7的sys原來沒有...

Python 中文亂碼

開始接觸python指令碼,一上來就碰到了中文亂碼問題。字串在python內部的表示是unicode編碼,因此,在做編碼轉換時,通常需要以unicode作為中間編碼,即先將其他編碼的字串解碼 decode 成unicode,再從unicode編碼 encode 成另一種編碼。decode 解碼,作用...

python 中文亂碼問題

python 中文亂碼問題 python 預設編碼和系統編碼有關 linux 下用locale命令可以檢視 加入以下編碼可以將預設編碼設定為utf8 import sys reload sys sys.setdefaultencoding utf 8 處理中文時候,可以用urllib.quote將u...