# 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