Python 讀文件錯誤: invalid start byte / illegal multibyte sequence

# Time: 2020/05/31

#Author: Xiaohong

# 運行環境: OS: Windows 10

#  Python: 3.7

# 功能: 讀文件時,產生錯誤的解決方法

# 錯誤提示:

'utf-8' codec can't decode byte 0xb5 in position 0: invalid start byte  

或:

'gbk' codec can't decode byte 0xfe in position 16172: illegal multibyte sequence

原因爲: open 文件時,指定的 encoding 類型,在文本文件中出現 超出改類型的文字,故報錯

具體解釋爲:中文字符的Unicode編碼0x0800-0xFFFF之間,(utf-8包含了部分漢字)。當你試圖將該“中文字符”轉成U碼的utf-8時超出了其範籌。而GBK 規範收錄了 ISO 10646.1 中的全部 CJK 漢字和符號,並有所補充,

解決方法: encoding  的類型做下拓展,也可以指定忽略(加上 errors='ignore'),如:

fr_xyj=open('E:\\00000\\xyj.txt','r',encoding='gbk')

或:

fr_xyj=open('E:\\00000\\xyj.txt','r',encoding='GB18030') 

或:

fr_xyj=open('E:\\00000\\xyj.txt','r',encoding='utf-8', errors='ignore')

附:字符編碼詳解

https://www.crifan.com/files/doc/docbook/char_encoding/release/html/char_encoding.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章