简单理解编码

适用对象

1、计算机相关类的技术人(研发、测试等)
2、对计算机编码感兴趣的其它人士
3、想知道为什么会出现乱码的人

本文的目的

本文从实用角度出发,并不会严格按照编码的规范来书写,如,字符集对应的字符编码名称并不准确,但不影响读者对编码整体的理解。主要目的是让读者对编解码有个初步的了解,以计算机中为什么会出现乱码。

为什么需要编码


  计算机能理解的语言是二进制的(0,1),人类的语言(英文、中文以及其它语言)计算机是无法直接理解的,同样,计算机的二进制语言,人类也是无法直接理解的,所以需要进行转换,这个转换的过程就叫编解码。
  由字符到字节叫编码,由字节到字符叫解码。

字符集与字符编码

计算机中存储信息的最小单元(能表示一个具体含义的内容,不是最小单位)是字节,一个字节包括8个二进制位(最小单位是位bit)。
  用一个字节表示世界上所有的语言是不够的(2的8次方),所以人们又发明了字符的概念,用多个字节表示一个字符,不同语言有不同的字符集以及与对应二进制的转换关系。
  字符的集合体叫做字符集,字符与二进制的转换规则叫做编解码。很多时候,我们说的ASCII编码,其实是包含了ASCII字符集以及其对应的字符编码,只不过很多字符集只有一种编码,所以才不会有问题,Unicode除外。

常见的字符集与字符编码:

| 字符集 |字符编码 |简单介绍 |
| ------- :| --------- :| -------- :|
| ASCII | ASCII |单字节,使用了7位 |
| ISO-8859-1 | ISO-8859-1 |也叫Latin-1,单字节,扩展了ASCII,可解码ASCII |
| GB2312 | GB2312 |小于0XFF用单字节,否则用双字节|
| GBK | GBK |扩展GB2312,规则同上,可解码GB2312|
| Unicode | UTF-8 |变长1-6字节|
| Unicode | UTF-16 |双字节|
| Unicode | UTF-32 |定长四字节|

造成乱码的原因

通过上面了解了什么叫做编码,以及字符集与字符编码,现在讲一下乱码是因为什么原因造成的。
  以中文字符“我”为例,我的Unicode码是6211(UTF-16编码,十进制是25105)。

1、经过GBK编码,然后再进行ISO-8859-1解码

  一个字符的“我”字,进行GBK编码,一个字符采用双字节表示(小于0XFF除外),然后再进行ISO-8859-1解码,一个字节对应一个字符,最终变成了两个字符。

2、经过ISO-8859-1编码再经过ISO-8859-1解码

  进行ISO-8859-1编码,一个字符采用单字节表示,6211超出了其编码范围,所以用3f表示(未知),然后再进行ISO-8859-1解码,一个字节对应一个字符,最终变成了1个字符的“?”。
  其它编码流程大体同上,还有更复杂的组合场景,如,将图1的结果再进行GBK编码与GBK解码(结果如何呢?)。
  总之以上问题,都是因为在编码与解码的时候没有使用合适的字符集以及对应字符编码才导致出现了乱码的场景。

总结

本文首先介绍了什么叫做编码,为什么我们需要编码,然后介绍了常见的字符集以及对应的字符编码,最后介绍了乱码的原因。读者再理解了以上内容之后,如果在日常工作中再遇到编码问题,可以根据本文的内容进行分析,希望能帮到大家。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,547评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,399评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,428评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,599评论 1 274
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,612评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,577评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,941评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,603评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,852评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,605评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,693评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,375评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,955评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,936评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,172评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,970评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,414评论 2 342

推荐阅读更多精彩内容