背景

在微信小程序开发时,有时候请求的某些网页会出现乱码(尤其是爬取数据时),当我们在外部查看源码时,我们可以发现网页的编码格式不是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. 存储的学习:freenas使用记录
  2. POJ3268 Silver Cow Party(最短路径)
  3. jvm性能调优 - 20G1垃圾回收器应该如何设置参数
  4. 让 Windows 7 定时待机
  5. Java实体对象为什么一定要实现Serializable接口呢?
  6. Ubuntu连网的问题
  7. (转) 淘淘商城系列——Redis集群的搭建
  8. 图解用户登录验证业务流程(推荐)
  9. ip转换器是否可以被检测出来_一氧化碳报警器是否可以检测煤气泄漏
  10. 【python】多进程、多线程、序列
  11. 【读书笔记】【未】杀死一只知更鸟
  12. Excel2007将汉字转换为拼音首字母
  13. Mybatis + mysql获取元数据时出现问题以及解决
  14. laydate时间控件在谷歌浏览器中兼容性问题
  15. IDEA中jpg文件或png文件显示乱码处理方法
  16. 使用JS打印九九乘法表
  17. 如何进入大数据领域,学习路线是什么?
  18. 解决windows10 桌面拖动文件到微信后无反应问题,尝试记录
  19. 校准报告确认有哪些方法?为什么需要进行确认?
  20. PCIe 5.0 spec学习1.1---均衡

热门文章

  1. xboxone硬盘坏的表现_你的机械硬盘有RV振动传感器吗?三款2.5寸HDD测试
  2. Sprint Galaxy S3 root教程
  3. 今天终于换地方住了~
  4. thinkpad T430 重装系统不能从光盘或者U盘启动/BIOS设置
  5. android 自定义弹性的ListView
  6. STM32操作访问flash,包括写入数据到flash和从flash读取数据
  7. spring的自定义标签
  8. 在金融行业中数据挖掘的应用都有哪些(一)
  9. 微软壮士断腕推WP8:诺基亚销量很受伤
  10. 常见firefox不支持的JavaScript问题(转)