ISO-8859-1处理案例
主要分享的内容是对光明网 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处理案例相关推荐
- 一文读懂字符编码(ASCII、ISO 8859、GB系列、Unicode)
一文读懂字符编码(ASCII.ISO 8859.GB系列.Unicode) 一.字符编码相关组织 1.1 ANSI 美国国家标准学会 1.2 Ecma 国际 1.3 ISO/IEC 1.4 统一码联盟 ...
- 【转】刨根究底字符编码之四——EASCII及ISO 8859字符编码方案
1. 计算机出现之后,首先逐渐从美国发展到了欧洲.由于欧洲很多国家所用到的字符中,除了基本的.美国也用的那128个ASCII字符之外,还有很多衍生的拉丁字母等字符.比如,在法语中,字母上方有注音符号: ...
- 各种ISO 8859字符集
ISO/IEC 8859-1 (Latin-1) - 西欧语言 ISO/IEC 8859-2 (Latin-2) - 中欧语言 ISO/IEC 8859-3 (Latin-3) - 南欧语言.世界语也 ...
- 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? ...
- 字符编码的故事(ASCII ISO GBK GB2312 UTF-8)
转载自:http://yuncode.net/article/a_520afe25b065d13 另有一篇对"UTF-8 GBK UTF8 GB2312 之间的区别和关系"描述比较 ...
- 了解 ISO 26262 ASIL
原文链接:了解 ISO 26262 ASIL 了解 ISO 26262 ASIL QNX软件系统公司Chris Hobbs, Patrick Lee 汽车安全完整性等级 (ASIL) 不同于安全完整性 ...
- 跟着楠哥学java(javase笔记)
JAVA介绍(4.14) JDK JDK(Java Development Kit Java开发工具包) JDK是提供给Java开发人员使用的,其中包含了java开发工具,也包含了JRE.所以安装了J ...
- corba核心规范(转)
corba核心规范(转)[@more@]核心规范当前最新版本是3.0,是在2002年8月整理发布的.CCM的3.0规范也已经发布. CORBA规范3.0终于出来了,也许是不能再拖了吧.比较奇怪的是3. ...
- python字符编码讲解_python 字符编码讲解
ASCII控制字符 Unicode编码 ASCII(American Standard Code for Information Interchange,美国信息互换标准代码,ASCⅡ)是基于拉丁字 ...
- ASCII计算机语言,unicode和ascii的区别是什么
什么是Unicode Unicode(统一码.万国码.单一码)是计算机科学领域里的一项业界标准,包括字符集.编码方案等.Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个 ...
最新文章
- 程序员请收好:10个非常实用的 VS Code 插件
- python微型web框架flask介绍
- windows下使用Python出现No module named tkinter.ttk
- 拉格朗日差值法----算法学习
- 超硬核!我统计了BAT笔试面试出现频率最高的五道题,学会了总能碰到一道
- LeetCode 1620. 网络信号最好的坐标
- linux 修改网卡报错xe,centos修改端口出现Failed to start OpenSSH server daemon 启动报错和-xe报错的解决方法...
- Java分段函数选择结构,编程流程作业选择结构(50题)
- jquery学习笔记(-)
- ip查询js获取页面属性
- linux 下sqlplus里无法使用方向键的解决
- vue aplayer 进度条无法拖动_用Vue做个Window玩
- SqlServer彻底卸载,适用于任何版本,亲测了n次都可用
- 学习微机原理与接口这一篇就够了
- 18种证明公安部门不再开具应该找谁开
- 测试苹果手机主板软件,iphone手机硬件检测工具使用方法
- LPVOID和PVOID的区别是什么
- 【运动学】基于Matlab模拟斜抛运动
- take credit for用法
- 百度地图标注公司那家好