A-A+
python 解决 ‘utf-8’ codec can’t decode byte 0xa3 in position 4111: invalid start byte

【注意:此文章为博主原创文章!转载需注意,请带原文链接,至少也要是txt格式!】
刚才写python的时候出现这个问题,在处理txt文本的时候报错
'utf-8' codec can't decode byte 0xa3 in position 4111: invalid start byte
看到这个真的很懵逼,因为我正在研究处理txt utf-8的BOM问题,都说用rb字节打开,等等,现说这个问题如何处理吧。我写的代码如下:
with open(txt_file, 'r' encoding='utf-8') as infile:
for rules in infile:
rules = …………………… #然后就出问题了
解决方案一:
with open(txt_file, 'rb') as infile: ##注意打开方式有变动
for rules in infile:
rules = rules.decode("utf8", "ignore") ##注意这里做了转变
rules = ………………
解决方案二:
中文字符的Unicode编码0x0800-0xFFFF之间,(utf-8包含了部分汉字)
当你试图将该“中文字符”转成U码的utf-8时超出了其范筹
而GBK 规范收录了 ISO 10646.1 中的全部 CJK 汉字和符号,并有所补充,
所以解决方法是将.decode('utf-8')改为.decode('gbk')
with open(txt_file, 'r' encoding='gbk') as infile: ##用GBK的方式打开就可以喽。
for rules in infile:
rules = ……………………
布施恩德可便相知重
微信扫一扫打赏
支付宝扫一扫打赏