Python 中文亂碼問題的分析的具體方案介紹
以下是關(guān)于Python 中文亂碼問題的分析,通過建立文件,以用文件中的python去讀取,以及相關(guān)代碼示例,以下的文章就是對Python 中文亂碼的解決方案,以下是文章的具體介紹,望你會有所收獲。
建立一個文件test.txt,文件格式用ANSI,內(nèi)容為:abc中文用python來讀取
- # coding=gbk
- print open("Test.txt").read()
結(jié)果:abc中文把文件格式改成UTF-8這里需要解碼:
- # coding=gbk
- import codecs
- print open("Test.txt").read().decode("utf-8")
結(jié)果:abc中文上面的test.txt我是用Editplus來編輯的,但當(dāng)我用Windows自帶的記事本編輯并存成UTF-8格式時,運(yùn)行時報錯:
- Traceback (most recent call last):
- File "ChineseTest.py", line 3, in
- print open("Test.txt").read().decode("utf-8")
- UnicodeEncodeError: 'gbk' codec can't encode
character u'\ufeff' in position 0: illegal multibyte
sequence
原來,某些軟件,如notepad,在保存一個以UTF-8編碼的文件時,會在文件開始的地方插入三個不可見的字符(0xEF 0xBB 0xBF,即BOM)。因此我們在讀取時需要自己去掉這些字符,python中的codecs module定義了這個常量:
- # coding=gbk
- import codecs
- data = open("Test.txt").read()
- if data[:3] == codecs.BOM_UTF8:
- datadata = data[3:]
- print data.decode("utf-8")
結(jié)果:abc中文
【編輯推薦】