Python遇到UnicodeDecodeError错误?
错误:UnicodeDecodeError:'gbk'codeccan'tdecodebyte0x81inposition7:illegalmultibytesequen...
错误:UnicodeDecodeError: 'gbk' codec can't decode byte 0x81 in position 7: illegal multibyte sequence我输了下图的代码,用了网上的UTF-8、rb、iso8859-1什么的都不行,哪位大神来解决一下?
展开
1个回答
展开全部
python的中文编码比较容易采坑,主要有一下几个注意点:
明确读取的是什么编码格式的输入 gb18030,还是utf-8,,如果不是从文件中来,而是代码内的中文字符,最好直接 u'中文',将编码变为 unicode
操作的时候,注意各种字符串的编码方式匹配,可以都转为unicode以统一处理,string.decode('gb18030') 可以把 gb18030编码转换为 unicode编码
输出时,明确最终的输出格式是什么,从而采用正确的 encode 方式进行编码
至于json,在load的时候,注意设定编码方式, json.loads(str, encoding='gb18030') 或者 utf-8
如果按照这个原则解决不了,可以考虑贴代码
明确读取的是什么编码格式的输入 gb18030,还是utf-8,,如果不是从文件中来,而是代码内的中文字符,最好直接 u'中文',将编码变为 unicode
操作的时候,注意各种字符串的编码方式匹配,可以都转为unicode以统一处理,string.decode('gb18030') 可以把 gb18030编码转换为 unicode编码
输出时,明确最终的输出格式是什么,从而采用正确的 encode 方式进行编码
至于json,在load的时候,注意设定编码方式, json.loads(str, encoding='gb18030') 或者 utf-8
如果按照这个原则解决不了,可以考虑贴代码
追问
谢谢,不过我发现我错在多了一个read()😂😂😂,而且这个代码我也看了一下,是cp936的,也就是GB2312的
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询