解决python中遇到的乱码问题
1. 解决中文乱码的一种可行方法
1 # -*- coding:utf-8 -*- 2 from __future__ import unicode_literals 3 4 import chardet 5 6 7 def smart_decoder(raw_content, default_encoding_list=("utf-8", "gb18030")): 8 """ 9 将字符串解码成unicode 10 :type default_encoding_list: list of str 11 :rtype: unicode 12 :type raw_content: str|unicode 13 """ 14 if isinstance(raw_content, unicode): 15 return raw_content 16 17 encoding = chardet.detect(raw_content).get("encoding", "utf-8") 18 19 try: 20 return raw_content.decode(encoding) 21 except UnicodeEncodeError as e: 22 for encoding in default_encoding_list: 23 try: 24 return raw_content.decode(encoding) 25 except UnicodeEncodeError as e: 26 pass 27 raise e 28 29 30 if __name__ == '__main__': 31 import requests 32 33 a = requests.get("https://www.baidu.com").content 34 smart_decoder(a)
2. requests响应结果乱码
使用requests请求网址,获取响应response, 通过response.text得到的网页内容,有时候会出现乱码的情况。
原因:
分析源代码发现,调用respose.text 其实就是对 response.content执行解码操作。编码通过chardet判断。
乱码的关键是,chardet获取的编码可能不正确,但在执行response.content.decode时,程序会直接忽略编码异常,从而导致使用错误的编码解码。
解决思路:
人工解码,处理编码错误
程序demo
1 def parse_response(response): 2 """ 3 手工对requests的响应内容解码 4 :rtype: unicode 5 """ 6 return smart_decoder(response.content)
源码见blog.
转载于:https://www.cnblogs.com/rkfeng/p/8017723.html
解决python中遇到的乱码问题相关推荐
- 解决python中 .to_csv() 的乱码问题
解决方法:添加参数 encoding='utf_8_sig' df.to_csv('users.csv', encoding='utf_8_sig') 转载于:https://www.cnblogs. ...
- python画图y轴在右侧_解决python中画图时x,y轴名称出现中文乱码的问题
如下所示: #-*- coding:utf-8 -*- import numpy as np import matplotlib.pyplot as plt from matplotlib.font_ ...
- python中plot不能显示标签_python 2: 解决python中的plot函数的图例legend不能显示中文问题...
问题: 图像标题.横纵坐标轴的标签都能显示中文名字,但是图例就是不能显示中文,怎么解决呢? 解决: plt.figure() plt.title(u'训练性能', fontproperties=fon ...
- python打开中文文件名_解决python打开中文文件名乱码的问题
解决python打开中文文件名乱码的问题 发布时间:2020-07-27 11:20:22 来源:亿速云 阅读:162 作者:清晨 小编给大家分享一下解决python打开中文文件名乱码的问题,相信大部 ...
- python画指数函数图像_解决python中的幂函数、指数函数问题
最近在调代码,碰到幂函数.指数函数,总是提示 ValueError: math domain error ValueError: negative number cannot be raised to ...
- python 2: 解决python中的plot函数的图例legend不能显示中文问题
python 2: 解决python中的plot函数的图例legend不能显示中文问题 参考文章: (1)python 2: 解决python中的plot函数的图例legend不能显示中文问题 (2) ...
- 成功解决python中出现的IndentationError: expected an indented block的错误
成功解决python中出现的IndentationError: expected an indented block的错误 目录 解决问题 解决思路 解决方法 解决问题 当在python中出现这个错误 ...
- 成功解决Python中导出图片出现错误SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position
成功解决Python中导出图片出现错误SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position ...
- 成功解决Python中出现的ValueError: not enough values to unpack (expected 2, got 1)的问题
成功解决Python中出现的ValueError: not enough values to unpack (expected 2, got 1)的问题 目录 解决问题 解决思路 解决方法 解决问题 ...
最新文章
- 实时检测神经振荡可实现行为相关的神经反馈
- 基于wifi的单片机无线通信研究_SKYLAB:智能家居无线协议WiFi/BLE/Zigbee介绍与对比...
- java 指定时间转换_Java中使用Calendar进行获取指定时间,使用SimpleDateFormat进行格式化转换...
- Cisco 3560 配置DHCP Relay实例
- 句法依存分析_复旦大学邱锡鹏教授:词法、句法分析研究进展综述
- 工具箱锁打不开了怎么办_木门门锁坏了怎么办?维修小技巧在手不发愁
- Jenkins小坑之执行Shell
- docker 镜像注册【图文教程】
- Lua 笔记--表达式
- 利用扩展双屏技术及Chrome浏览器,快速剖析优秀网页Div及CSS构成,并高效实现原型创作
- VxWorks的漏洞分析与解决方案
- Linux性能优化(一)——stress压力测试工具
- 积分上限函数的导数例题 笔记
- word 在试图打开时遇到错误 以及word文档的修复
- Datawhale组队学习周报(第025周)
- 油猴-今日头条去广告脚本
- 汕头大学本科学生毕业论文(设计)撰写规范(2018版)
- win10 CMD大全
- 线上线下联动 亚琦集团打好商贸物流体系创新“组合拳”
- JavaScript中实现继承的方法(深入学习原型链、盗用构造函数、组合继承、原型式继承、寄生式继承、寄生式组合继承)