码迷,mamicode.com
首页 > 其他好文 > 详细

解决中文乱码问题

时间:2018-01-11 11:35:10      阅读:176      评论:0      收藏:0      [点我收藏+]

标签:coding   获取   原型   压缩   ext   文件编码   符号   eee   encoding   

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

解决中文乱码问题

标签:coding   获取   原型   压缩   ext   文件编码   符号   eee   encoding   

原文地址:http://blog.51cto.com/molujiang/2059679

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!