解决中文乱码问题

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处理
技术分享图片
如果希望显示中文,
技术分享图片
技术分享图片

以上是关于解决中文乱码问题的主要内容,如果未能解决你的问题,请参考以下文章

SpringCloud上传文件中文乱码解决方案

解决SQLAlchemy MySQL Oracle 中文执行乱码问题

解决获取url上中文乱码问题

loadrunner中出现中文乱码该怎么解决

linux解决中文乱码问题

如何解决MSSQL中文数据乱码问题