charset编码方式与字符集(为什么会乱码)
背景
在微信小程序开发时,有时候请求的某些网页会出现乱码(尤其是爬取数据时),当我们在外部查看源码时,我们可以发现网页的编码格式不是utf-8
直接说解决方案
在请求求地址地址时,尝试加上charset=utf-8
参数,例如https://www.xx.com/2231/84140.htm?charset=utf-8
,如果ok则问题解决。
字符集
字符集(Charset):是一个系统支持的所有抽象字符的集合。
字符编码(Character Encoding):是一套法则,使用该法则能够对自然语言的字符的一个集合(如字母表或音节表),与其他东西的一个集合(如号码或电脉冲)进行配对。即在符号集合与数字系统之间建立对应关系。计算机要准确的处理各种字符集文字,需要进行字符编码,以便计算机能够识别和存储各种文字。
常见字符集
- iso-8859-1: 西欧的编码,英文编码
- gb2312: 中文编码
- utf-8 : 世界通用语言编码
- big5: 繁体中文编码
- euc-kr : 韩文编码
字符集有着十分有趣的历史(在我看来),可以自行搜索。
GBK与utf-8转换乱码问题的探究
本质:读取二进制的编码和最初将字符串转化成二进制的编码方式不一致。
GBK
采用单双字节变长编码,英文使用单字节编码,完全兼容ASCII字符编码,中文部分采用双字节编码。双字节其编码范围从8140至FEFE(剔除xx7F)。
单字节:00000000 - 01111111
双字节:10000001 01000000 - 11111110 11111110 (剔除******** 01111111)
单字节、双字节的区分通过高字节高位区分,单字节高位为0,双字节的高字节高位为1。
UTF-8
可变长字符编码,是unicode码的具体实现,UTF-8用1到6个字节编码Unicode字符。
当解码不符合当前的编码规则,会被解码成特殊字符,但此特殊字符再进行编码,是回不到最初的二进制的。
继续深入的阅读
聊聊gbk与utf8互转的乱码问题
关于 charset 的几种编码方式
charset编码方式与字符集(为什么会乱码)相关推荐
- html ascii编码方式,HTML 字符集 参考手册
要正确显示一个 HTML 页面,浏览器必须知道要使用的字符集(字符编码). HTML 字符集 在 HTML 中,正确的字符编码是什么? HTML5 中默认的字符编码是 UTF-8. 这并非总是如此.早 ...
- java基础巩固-宇宙第一AiYWM:为了维持生计,MySQL基础Part2(MVCC、存储过程、触发器、编码方式及字符集、多表连接,内外连接,子查询、自联结、视图、设计DB、三范式)~整起
PART1:
- php的内部方法编码方式,字符集字符编码以及PHP中的一些转码方法
在重写一些老的项目的时候,有可能会遇到这种情况 ¾ÍÒµÖ¸µ¼ÖÐÐÄ2010Ä꺮¼Ù·Å¼Ù֪ͨ �����˵�λ������� ???????? 这就是传说中的乱码,要想处理乱码,得先了 ...
- 关于网页乱码和字符编码方式
网页出现乱码的原因一般是因为字符的编码方式不同. 字符编码是计算机技术的基础,对于计算机来说,所有的信息都是0或者1的二进制序列,计算机是无法直接识别和存储字符的,所以,字符必须经过编码才能被计算机处 ...
- 关于文件格式和编码方式,乱码产生的原因?
计算机上存储的文件都是0101类型的二进制文件,但是为什么有那么多不同的文件格式呢?比如.txt文件..html文件..pdf文件..exe文件..mp3文件等等,他们底层都是0101类型的文件,那么 ...
- arcgis中编码方式改变引起的shp文件乱码、字符截断问题处理
arcgis中编码方式改变引起的shp文件乱码.字符截断问题处理 我们有时候使用ArcGIS读取shp文件的时候,打开属性表后,属性值存在中文乱码的情况,或字段项存在长度缩减的情况,这都是使用不同版本 ...
- Charset编码问题导致的中文乱码
环境:POST方法.Content-Type: application/x-www-form-urlencoded;charset=utf-8(key=val&key2=val2形式) 调用接 ...
- 目前HTML常用的字符集编码方式,HTML知识点
1. HTML 初识 HTML 指的是超文本标记语言 (Hyper Text Markup Language)是用来描述网页的一种语言. HTML 不是一种编程语言,而是一种标记语言 (markup ...
- 【转】刨根究底字符编码之十——Unicode字符集的字符编码方式
一.字符编码方式CEF的选择 1. 由于Unicode字符集非常大(并且作为开放字符集还在不断扩展之中),有些字符的编号(即码点值)需要两个或两个以上字节来表示,而要对这样的编号进行编码,也必须使用两 ...
最新文章
- 存储的学习:freenas使用记录
- POJ3268 Silver Cow Party(最短路径)
- jvm性能调优 - 20G1垃圾回收器应该如何设置参数
- 让 Windows 7 定时待机
- Java实体对象为什么一定要实现Serializable接口呢?
- Ubuntu连网的问题
- (转) 淘淘商城系列——Redis集群的搭建
- 图解用户登录验证业务流程(推荐)
- ip转换器是否可以被检测出来_一氧化碳报警器是否可以检测煤气泄漏
- 【python】多进程、多线程、序列
- 【读书笔记】【未】杀死一只知更鸟
- Excel2007将汉字转换为拼音首字母
- Mybatis + mysql获取元数据时出现问题以及解决
- laydate时间控件在谷歌浏览器中兼容性问题
- IDEA中jpg文件或png文件显示乱码处理方法
- 使用JS打印九九乘法表
- 如何进入大数据领域,学习路线是什么?
- 解决windows10 桌面拖动文件到微信后无反应问题,尝试记录
- 校准报告确认有哪些方法?为什么需要进行确认?
- PCIe 5.0 spec学习1.1---均衡