解决中文乱码问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了解决中文乱码问题相关的知识,希望对你有一定的参考价值。
1.获取网站中文乱码
在获取网页源码,声明r的编码方式r.encoding
2.非法字符抛出异常
将某个字符从gbk解码为unicode,str.decode(‘gbk‘)
unicodeDecodeError:‘Gbk‘ codec can‘t decode byte in position .....
这是由于混用了多种编码,出现非法字符,可以采用str.decode(‘GBK‘,‘ingore‘)
decode原型:decode([encoding],[error=‘‘strict])
第二个参数:
(1)ingore忽略非法字符,显示有效字符
(2)replace使用符号代替非法字符
(3)xmlcharreplace使用xml字符引用代替非法字符
3.网页使用gzip压缩
网页源码使用的utf-8编码,获取的中文部分全部乱码,这是使用了gzip压缩必须先解压,使用r.content会自动解压gzip和deflate传输编码响应数据
chardet.detect(r.content)返回一个字典,编码方式和confidence精确度。
总括:首先使用r.content解压gzip,然后使用charset找到该字符串的编码方式,最后把字符串解码unicode,
4.读写文件的中文乱码
在读取文件时声明编码方式。
写文件时注明文件编码
对于json文件:
默认unicode处理
如果希望显示中文,
以上是关于解决中文乱码问题的主要内容,如果未能解决你的问题,请参考以下文章