[python錯誤]UnicodeDecodeError: 'gbk' codec can't decode byte...


出現此錯誤的原因是使用'gbk'解碼時報錯,存在一些字符不能使用gbk來解碼。

 

首先,簡體中文字符編碼(ASCII擴展字符集)有下列幾種:GB2312、GBK、GB18030。

GB2312: 中國國家標准總局在1980年發布的《信息交換用漢字編碼字符集》,共收入漢字6763個和非漢字圖形字符682個。

GBK:中國國家標准總局在1995年發布了《漢字編碼擴展規范》(GBK)。GBK與GB 2312—1980國家標准所對應的內碼標准兼容,同時在字匯一級支持ISO/IEC10646—1和GB 13000—1的全部中、日、韓(CJK)漢字,共計20902字。

GB18030: 有兩個版本:GB18030-2000和GB18030-2005。GB18030-2000是GBK的取代版本,它的主要特點是在GBK基礎上增加了CJK統一漢字擴充A的漢字。GB18030-2005的主要特點是在GB18030-2000基礎上增加了CJK統一漢字擴充B的漢字。

其中GB18030兼容GBK和GB2312編碼,在處理簡體中文的時候,可以統一使用GB18030來讀取GBK或者GB2312的文檔。

 

在編寫python腳本處理簡體中文文檔時,可以使用下面的方式來讀取文檔:

如使用:open('abc.txt', encoding= 'gb18030') 來讀取文檔。當遇到“GB18030”也無法編碼的字符時,上面的代碼會報錯。可以嘗試使用下面的代碼來解決:

open('abc.txt', encoding= 'gb18030', error= 'ignore')

 

含編碼檢測及簡體中文字符處理的完整例子:

CSV文件分割與列異常處理的python腳本

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM