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中遇到的乱码问题相关推荐

  1. 解决python中 .to_csv() 的乱码问题

    解决方法:添加参数 encoding='utf_8_sig' df.to_csv('users.csv', encoding='utf_8_sig') 转载于:https://www.cnblogs. ...

  2. python画图y轴在右侧_解决python中画图时x,y轴名称出现中文乱码的问题

    如下所示: #-*- coding:utf-8 -*- import numpy as np import matplotlib.pyplot as plt from matplotlib.font_ ...

  3. python中plot不能显示标签_python 2: 解决python中的plot函数的图例legend不能显示中文问题...

    问题: 图像标题.横纵坐标轴的标签都能显示中文名字,但是图例就是不能显示中文,怎么解决呢? 解决: plt.figure() plt.title(u'训练性能', fontproperties=fon ...

  4. python打开中文文件名_解决python打开中文文件名乱码的问题

    解决python打开中文文件名乱码的问题 发布时间:2020-07-27 11:20:22 来源:亿速云 阅读:162 作者:清晨 小编给大家分享一下解决python打开中文文件名乱码的问题,相信大部 ...

  5. python画指数函数图像_解决python中的幂函数、指数函数问题

    最近在调代码,碰到幂函数.指数函数,总是提示 ValueError: math domain error ValueError: negative number cannot be raised to ...

  6. python 2: 解决python中的plot函数的图例legend不能显示中文问题

    python 2: 解决python中的plot函数的图例legend不能显示中文问题 参考文章: (1)python 2: 解决python中的plot函数的图例legend不能显示中文问题 (2) ...

  7. 成功解决python中出现的IndentationError: expected an indented block的错误

    成功解决python中出现的IndentationError: expected an indented block的错误 目录 解决问题 解决思路 解决方法 解决问题 当在python中出现这个错误 ...

  8. 成功解决Python中导出图片出现错误SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position

    成功解决Python中导出图片出现错误SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position ...

  9. 成功解决Python中出现的ValueError: not enough values to unpack (expected 2, got 1)的问题

    成功解决Python中出现的ValueError: not enough values to unpack (expected 2, got 1)的问题 目录 解决问题 解决思路 解决方法 解决问题 ...

最新文章

  1. 实时检测神经振荡可实现行为相关的神经反馈
  2. 基于wifi的单片机无线通信研究_SKYLAB:智能家居无线协议WiFi/BLE/Zigbee介绍与对比...
  3. java 指定时间转换_Java中使用Calendar进行获取指定时间,使用SimpleDateFormat进行格式化转换...
  4. Cisco 3560 配置DHCP Relay实例
  5. 句法依存分析_复旦大学邱锡鹏教授:词法、句法分析研究进展综述
  6. 工具箱锁打不开了怎么办_木门门锁坏了怎么办?维修小技巧在手不发愁
  7. Jenkins小坑之执行Shell
  8. docker 镜像注册【图文教程】
  9. Lua 笔记--表达式
  10. 利用扩展双屏技术及Chrome浏览器,快速剖析优秀网页Div及CSS构成,并高效实现原型创作
  11. VxWorks的漏洞分析与解决方案
  12. Linux性能优化(一)——stress压力测试工具
  13. 积分上限函数的导数例题 笔记
  14. word 在试图打开时遇到错误 以及word文档的修复
  15. Datawhale组队学习周报(第025周)
  16. 油猴-今日头条去广告脚本
  17. 汕头大学本科学生毕业论文(设计)撰写规范(2018版)
  18. win10 CMD大全
  19. 线上线下联动 亚琦集团打好商贸物流体系创新“组合拳”
  20. JavaScript中实现继承的方法(深入学习原型链、盗用构造函数、组合继承、原型式继承、寄生式继承、寄生式组合继承)

热门文章

  1. Hibernate二级缓存配置
  2. 渐变色--浏览器兼容性
  3. HDU 5392 BC #51
  4. hdu 1233 最小生成树
  5. windows修改远程桌面RDP连接数
  6. 关于VC++6.0中getline函数的一个bug
  7. SQL*Plus命令
  8. vue使用render渲染jsx
  9. Eclipse安装VJET报错解决办法
  10. 动态规划---背包问题分析