背景

在微信小程序开发时,有时候请求的某些网页会出现乱码(尤其是爬取数据时),当我们在外部查看源码时,我们可以发现网页的编码格式不是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编码方式与字符集(为什么会乱码)相关推荐

  1. html ascii编码方式,HTML 字符集 参考手册

    要正确显示一个 HTML 页面,浏览器必须知道要使用的字符集(字符编码). HTML 字符集 在 HTML 中,正确的字符编码是什么? HTML5 中默认的字符编码是 UTF-8. 这并非总是如此.早 ...

  2. java基础巩固-宇宙第一AiYWM:为了维持生计,MySQL基础Part2(MVCC、存储过程、触发器、编码方式及字符集、多表连接,内外连接,子查询、自联结、视图、设计DB、三范式)~整起

    PART1:

  3. php的内部方法编码方式,字符集字符编码以及PHP中的一些转码方法

    在重写一些老的项目的时候,有可能会遇到这种情况 ¾ÍÒµÖ¸µ¼ÖÐÐÄ2010Ä꺮¼Ù·Å¼Ù֪ͨ �����˵�λ������� ???????? 这就是传说中的乱码,要想处理乱码,得先了 ...

  4. 关于网页乱码和字符编码方式

    网页出现乱码的原因一般是因为字符的编码方式不同. 字符编码是计算机技术的基础,对于计算机来说,所有的信息都是0或者1的二进制序列,计算机是无法直接识别和存储字符的,所以,字符必须经过编码才能被计算机处 ...

  5. 关于文件格式和编码方式,乱码产生的原因?

    计算机上存储的文件都是0101类型的二进制文件,但是为什么有那么多不同的文件格式呢?比如.txt文件..html文件..pdf文件..exe文件..mp3文件等等,他们底层都是0101类型的文件,那么 ...

  6. arcgis中编码方式改变引起的shp文件乱码、字符截断问题处理

    arcgis中编码方式改变引起的shp文件乱码.字符截断问题处理 我们有时候使用ArcGIS读取shp文件的时候,打开属性表后,属性值存在中文乱码的情况,或字段项存在长度缩减的情况,这都是使用不同版本 ...

  7. Charset编码问题导致的中文乱码

    环境:POST方法.Content-Type: application/x-www-form-urlencoded;charset=utf-8(key=val&key2=val2形式) 调用接 ...

  8. 目前HTML常用的字符集编码方式,HTML知识点

    1. HTML 初识 HTML 指的是超文本标记语言 (Hyper Text Markup Language)是用来描述网页的一种语言. HTML 不是一种编程语言,而是一种标记语言 (markup ...

  9. 【转】刨根究底字符编码之十——Unicode字符集的字符编码方式

    一.字符编码方式CEF的选择 1. 由于Unicode字符集非常大(并且作为开放字符集还在不断扩展之中),有些字符的编号(即码点值)需要两个或两个以上字节来表示,而要对这样的编号进行编码,也必须使用两 ...

最新文章

  1. 这个北航妹子也太卷了...
  2. Response 和 Request
  3. 第一次二刷的电影:工作细胞
  4. javafx 遮罩_JavaFX技巧31:遮罩/剪切/ Alpha通道
  5. Taro+react开发(87):图片引入
  6. ES6(ECMAScript2015)/01/ES6简介
  7. Stack Overflow RToax
  8. OpenShift 4 - 查看关键证书到期日期
  9. 微信抖音社区团购小程序源码开发方案怎么做
  10. 5.linux设备驱动模型
  11. autojs 复制到粘贴板_JS复制到剪贴板示例代码
  12. 地图白话(六):街景地图
  13. 高考数学圆锥曲线总结贴+杂题巧解
  14. golang接口与反射剖析
  15. Java、JSP报刊订阅管理系统的设计与实现
  16. win10系统如何添加和切换多个桌面?
  17. ML:模型训练/模型评估中常用的两种方法代码实现(留一法一次性切分训练和K折交叉验证训练)
  18. Android判断手机的电池状态
  19. 手把手教你用ESP32 制作一个游戏机,小白可上手
  20. 开心网竞争对手不是校内网

热门文章

  1. 电源老化测试系统定制|充电桩自动化测试系统NSAT-8000概述
  2. 王老师讲解:SQL Server 2005数据库nolock的使用【来自Aisino_BBS】
  3. 手机桌面百度搜索框不显示热词_高效搜索神器,你选listary还是火柴?
  4. C语言实现超市信息管理系统(简单版)
  5. 《逃离塔科夫》:一场漫长的胜利,次世代爆款的第一组拼图
  6. 汉诺塔问题的简单理解和总结
  7. 基于RTT-MicroPython制作自带BGM的新型肺炎晴雨表
  8. z7 mini Android8.1,Z7 mini(支持电信4G版本)
  9. c语言1到200能被4整除,c语言求[100,200]之间能被4整除,不能被5整除的数之和
  10. java 自定义标签实现的_Java实现自定义标签的步骤——带你实现自己的标签