A-A+

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

2019年06月13日 23:11 学习笔记 暂无评论 阅读 73 views 次

【注意:此文章为博主原创文章!转载需注意,请带原文链接,至少也要是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 = ……………………   

布施恩德可便相知重

微信扫一扫打赏

支付宝扫一扫打赏

×

给我留言