【代码】Python一句话解决内容不确定编码乱码问题

代码通过检测和处理响应的编码,确保优先使用声明的编码,无声明时智能分析,利用try-except捕获异常,避免因编码错误导致的内容解析问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

将响应体代入如下代码处理一下就可以了

# 判断编码,没有问题就跳过,有问题自动修正编码
try:
    r.encoding = r.apparent_encoding if r.encoding == 'ISO-8859-1' else r.encoding
    print(r.encoding)
except:
    pass
content = r.text

代码在获取网页响应内容r后,对r的编码做判断和处理:

  1. 首先尝试获取r的encoding。r.encoding是响应的明确声称的编码,如在HTTP header的Content-Type中指定的编码。
  2. 如果r.encoding是’ISO-8859-1’,这通常表示编码未指定,则将其设置为r.apparent_encoding。r.apparent_encoding是根据内容分析出的编码。
  3. 如果r.encoding不是ISO-8859-1,则直接使用r.encoding作为编码。
  4. 在设置编码的过程中,使用try-except语句捕获 potentia的异常。如果设置失败,则pass继续执行。
  5. 最后将处理后的响应内容赋值到content变量。

这样做的好处是:

  1. 优先使用响应明确声称的编码,避免编码错误。
  2. 当编码未指定时,智能分析内容确定编码,避免使用默认的ISO-8859-1编码出错。
  3. 用try-except语句捕获设置编码的异常,保证不会中断程序执行。

总结

这段代码的目的是智能地处理响应的编码,最大可能避免编码错误,从而正确解析响应内容。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值