主要分享的内容是对光明网 ISO-8859-1 编码的处理方式。

我在处理响应时发现返回了乱码数据,经过各种encode、decode并不能解决问题,如果强行 ignore 忽略报错会导致数据丢失。

异常网址:https://zhonghua.cloud.gmw.cn/service/search.do?

接下来分享一下我的处理方法。


根据经验和分析,此时我选择通过其他方式进行转码查看。

由于JS语言支持面向对象、命令式、声明式、函数式编程范式,并且是目前支持最多编码的语言。

所以我们先把乱码的数据放到JS中尝试解码。

打开一个控制台进行调试:


通过escape和unescape可以发现能对这串字符串进行编码。

escape编码之后返回的是urlencode百分号编码。那我们可以再次把这段urlencode编码进行解码。


接下来把相应中的乱码拿出来测试。
如: 2021æ‰‹æœºå ‰æ˜Žç½‘æ–‡ç« é¡µ_å ¨åª’ä½“ç

将其escape

然后用python进行unquote

发现已经成功解码。


所以最终处理方法为:

# -*- coding: utf-8 -*-
# @Author  : lx
# @IDE :PyCharmimport requests
import execjs
from urllib import parseheaders = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36',
}js = '''function get_escape(doc){return escape(doc);}
'''url = 'https://m.gmw.cn/2022-01/20/content_1302771636.htm'
doc = requests.get(url, headers=headers).text
doc = execjs.compile(js).call('get_escape', doc)
doc = parse.unquote(doc)
print(doc)

ISO-8859-1处理案例相关推荐

  1. 一文读懂字符编码(ASCII、ISO 8859、GB系列、Unicode)

    一文读懂字符编码(ASCII.ISO 8859.GB系列.Unicode) 一.字符编码相关组织 1.1 ANSI 美国国家标准学会 1.2 Ecma 国际 1.3 ISO/IEC 1.4 统一码联盟 ...

  2. 【转】刨根究底字符编码之四——EASCII及ISO 8859字符编码方案

    1. 计算机出现之后,首先逐渐从美国发展到了欧洲.由于欧洲很多国家所用到的字符中,除了基本的.美国也用的那128个ASCII字符之外,还有很多衍生的拉丁字母等字符.比如,在法语中,字母上方有注音符号: ...

  3. 各种ISO 8859字符集

    ISO/IEC 8859-1 (Latin-1) - 西欧语言 ISO/IEC 8859-2 (Latin-2) - 中欧语言 ISO/IEC 8859-3 (Latin-3) - 南欧语言.世界语也 ...

  4. php iso 8859 1 解码,关于php:Apache的默认编码是ISO-8859-1,但网站是UTF-8?

    我必须第一次处理编码,我对PHP.Apache和浏览器如何处理编码感到困惑.PHP和Apache默认使用ISO-8859-1,但大多数网站是UTF-8.什么时候ISO-8859-1转换成了UTF-8? ...

  5. 字符编码的故事(ASCII ISO GBK GB2312 UTF-8)

    转载自:http://yuncode.net/article/a_520afe25b065d13 另有一篇对"UTF-8 GBK UTF8 GB2312 之间的区别和关系"描述比较 ...

  6. 了解 ISO 26262 ASIL

    原文链接:了解 ISO 26262 ASIL 了解 ISO 26262 ASIL QNX软件系统公司Chris Hobbs, Patrick Lee 汽车安全完整性等级 (ASIL) 不同于安全完整性 ...

  7. 跟着楠哥学java(javase笔记)

    JAVA介绍(4.14) JDK JDK(Java Development Kit Java开发工具包) JDK是提供给Java开发人员使用的,其中包含了java开发工具,也包含了JRE.所以安装了J ...

  8. corba核心规范(转)

    corba核心规范(转)[@more@]核心规范当前最新版本是3.0,是在2002年8月整理发布的.CCM的3.0规范也已经发布. CORBA规范3.0终于出来了,也许是不能再拖了吧.比较奇怪的是3. ...

  9. python字符编码讲解_python 字符编码讲解

    ASCII控制字符  Unicode编码 ASCII(American Standard Code for Information Interchange,美国信息互换标准代码,ASCⅡ)是基于拉丁字 ...

  10. ASCII计算机语言,unicode和ascii的区别是什么

    什么是Unicode Unicode(统一码.万国码.单一码)是计算机科学领域里的一项业界标准,包括字符集.编码方案等.Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个 ...

最新文章

  1. 程序员请收好:10个非常实用的 VS Code 插件
  2. python微型web框架flask介绍
  3. windows下使用Python出现No module named tkinter.ttk
  4. 拉格朗日差值法----算法学习
  5. 超硬核!我统计了BAT笔试面试出现频率最高的五道题,学会了总能碰到一道
  6. LeetCode 1620. 网络信号最好的坐标
  7. linux 修改网卡报错xe,centos修改端口出现Failed to start OpenSSH server daemon 启动报错和-xe报错的解决方法...
  8. Java分段函数选择结构,编程流程作业选择结构(50题)
  9. jquery学习笔记(-)
  10. ip查询js获取页面属性
  11. linux 下sqlplus里无法使用方向键的解决
  12. vue aplayer 进度条无法拖动_用Vue做个Window玩
  13. SqlServer彻底卸载,适用于任何版本,亲测了n次都可用
  14. 学习微机原理与接口这一篇就够了
  15. 18种证明公安部门不再开具应该找谁开
  16. 测试苹果手机主板软件,iphone手机硬件检测工具使用方法
  17. LPVOID和PVOID的区别是什么
  18. 【运动学】基于Matlab模拟斜抛运动
  19. take credit for用法
  20. 百度地图标注公司那家好

热门文章

  1. 图片标注工具LabelImg的简单安装
  2. 【Vue教程三】点击事件、表单输入事件、键盘事件
  3. Linux sudo命令和sudoers文件
  4. 高校大学生党史学习教育网站
  5. TabLayout动态添加Tab (动态设置TabMod)
  6. 关于localDate时间相减问题
  7. word 中插入高亮代码及转带标签的 PDF
  8. c语言每日一敲——第五天:跑步训练
  9. win10拨号上网不能开启移动热点 解决方案
  10. 【前端代码高亮】页面代码高亮展示之Highlight高亮组件应用详解,附多个主题效果