Python文本亂碼發(fā)生時(shí)的解決方案
Python文本亂碼這個(gè)問(wèn)題在我們使用的時(shí)候會(huì)發(fā)生在很多地方,其實(shí)我們需要不斷的進(jìn)行相關(guān)代碼的調(diào)整,在下面的文章中你會(huì)找到相關(guān)的解決方法。希望大家詳仔細(xì)的學(xué)習(xí)。
在處理utf8文本格式的時(shí)候,由于這些文本是含BOM(byte order mark)的utf8文本,編譯時(shí)產(chǎn)生一個(gè)Error,”UnicodeEncodeError: ‘gbk’ codec can’t encode character u’\ufeff’ in position 0: illegal multibyte sequence”
原來(lái),某些軟件,如notepad,在保存一個(gè)以UTF-8編碼的文件時(shí),會(huì)在文件開(kāi)始的地方插入三個(gè)不可見(jiàn)的字符(0xEF 0xBB 0xBF,即BOM)。 因此我們?cè)谧x取時(shí)需要自己去掉這些字符,Python中的codecs module定義了這個(gè)常量:
查看源代碼打印幫助
- import codecs
- data = open("Test.txt").read()
- if data[:3] == codecs.BOM_UTF8:
- datadata = data[3:]
- print data.decode("utf-8")
以上就是對(duì)Python文本亂碼發(fā)生時(shí)代碼修改的詳細(xì)介紹。
【編輯推薦】