对乱码问题本源的探索

关键词:


问题来源

我们经常会遇到中文乱码问题,也时常要绞尽脑汁去解决它。那么,当我们把不同的字符输入到电脑后,电脑程序到底怎么来理解它呢?电脑又是怎样进行的‘’字符的翻译‘’,乱码问题到底出现在哪?为了解释这些问题,我们引入几个例子来帮助理解。


示例一:用户输入的人机理解过程

  • 用户输入的人机理解过程:
    输入——>键盘码——>交换码——>内部码——>地址码——>字形码——>输出

  • 键盘码:输入设备(键盘,鼠标等)对应的系统键值或者经过编码后的acsii码

  • 交换码:将接收的字符做计算机可支持的字符编码,例如我们常用的utf-8,assii等。

  • 内部码:将对应已编码的字符存储为二进制形式。

  • 地址码:实际的存储地址,为二进制形式。

  • 字形码:根据相应原理或算法生成对应输入接受类型字符


示例二:查找不认识的单词的过程

从上面过程我们可以看出,乱码出现在已接收字符进行交换码与内部码转化的过程中,那我们想想英语小白在实际生活中遇到一个不认识的单词会怎么办呢?

  • 查找不认识的单词的过程
    不认识的单词——>使用双语字典查询——>根据查询规则获得单词位置——>根据位置找到该单词实际示意

我们归纳上面的例子可以理解实际转码的要点,即:

  • 字库表(character repertoire):可读或者可显示字符的集合,字库表表示了整个字符集能够展现表示的所有字符的范围,例如中-英双语所包含的字。
  • 编码字符集(coded character set):即用一个编码值来表示一个字符在字库中的位置,例如单词在字典中的位置。
  • 字符编码(character encoding form):编码字符集和实际存储数值之间的转换关系,例如不同字典规定的规则,按字母、词性排序等。

示例三:字符编码存在的意义

通过三要点归纳,大家有可能会发现,字库表对应着字符的值,编码字符集对应着表中的的位置,这种键-值形式已经能满足电脑查询的功能了,那么字符编码存在的意义在哪呢?这其实很好理解,如果我们想要用一本字典查询所有我们不知道的字符,这就要求我们的字典必须包含的范围足够大,内容足够多。可是对于我们上文提到的新单词问题而言,我仅仅需要解决一个很小的麻烦,仅仅需要一本中英双语词典就能搞定了。对于计算机和程序的使用也是类似,我只需要存储我需要且常用的字典,而不需要将偌大的字典存进来消耗我的内存和查询时间。而字符编码就解决词典切分和其他规则定义的需求。


常用的字符集与字符编码

通过上面的举例,相信大家对两者一有了明确的认识,那我就列举出常见的字符表与字符编码。

  • 字符集/字符编码:ASCII字符集/ASCII编码、GBxxxx字符集/GBxxxx编码、BIG5字符集/BIG5编码、Unicode字符集/UTF-32 UTF-16 UTF-8编码等。

乱码出现的原因

用了不相对应的编码与解码方式,导致对同一字符进行不同的翻译解释。所以,在实际操作过程中,尽量先弄明白输入与输出的编码方式,同时检查你编码文件的默认打开编码方式,这样能一定程度上帮你解决乱码问题。


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

推荐阅读更多精彩内容

  • 编码问题一直困扰着开发人员,尤其在 Java 中更加明显,因为 Java 是跨平台语言,不同平台之间编码之间的切换...
    x360阅读 2,476评论 1 20
  • 为什么要编码 不知道大家有没有想过一个问题,那就是为什么要编码?我们能不能不编码?要回答这个问题必须要回到计算机是...
    艾小天儿阅读 17,290评论 0 2
  • 经理说得对,选择才是最困难的 两条路,到底怎么选。。。
    Ewan丶阅读 198评论 1 2
  • 不知道未来的路会怎样,不知道未来的生活会想哪个方向前进,总是觉得自己与众不同,心比天高,却还是要脚踏实地,想的总比...
    污婆666阅读 195评论 0 0