目录
前言:
字符与字符集:
字符集编码的发展(时间顺序):
总结:
前言:
你是否有好奇过文字是怎么在电脑中显示出来的?为什么我们通过输入法就可以输入想要得到的文字?为什么我们粘贴有些网站的文字,复制到自己的电脑上就成乱码?为什么我们有的时候打开编译器之后,里面的注释成了乱码?这一切都和字符集有关,因此我们今天来为大家讲解一下字符集编码。
字符与字符集:
人类世界有海量的文字,这些文字可以被刻在石头上,墙壁上,竹筒上。这一个个符号都是字符,很遗憾这些文字计算机都读不懂,而我们把字符组成的集合就叫做字符集。在以前的几十年内,大家都在搜寻一个方法让计算机可以识字,而计算机是0和1的世界,因此我们想出了一个办法:用一个特定的二进制数字代表一个特定的字符。这样不就实现了字符在计算机中的表示,字符集编码应运而生!
字符集编码的发展(时间顺序):
ASCII(American Standard Code for Information Interchange,美国信息交换标准代码)是最早的字符集编码方案之一,它定义了一组128个字符及其对应的7位二进制编码。ASCII字符集包含了英文字母(大写和小写)、数字、标点符号、控制字符(例如换行符、回车符)和一些特殊符号(例如美元符号、百分号等)。
ASCII表展示:
众所周知计算机存储数据的基本单位是字节,而一个字节由八个二进制位组成,也就是八个比特(bit),每个比特有0 和 1 两种状态,因此一个字节一共有 256 种不同的二进制状态,也就是最多可以存储256个不同的字符。
而随着各国都逐渐进入信息化时代,这128个字符显然不够用了,一个字节有256种状态,而初代的ASCII码只占用了128种状态,因此西欧的国家联合起来,搞了EASCII码。
EASCII(Extended AS而CII)概念涌现于计算机发展的早期,旨在为ASCII字符集增加更多的字符和符号,超出了原始的128个字符。EASCII对ASCII字符集进行了自定义的扩展,使它能够适应更多地国际字符需求和特殊用途。
扩展字符通常包括特殊符号、非拉丁字符、货币符号、辅助标点符号以及其他语言的字母、符号和标点符号等。扩展ASCII字符集的具体范围和定义不是标准化的,因此可能会因不同的计算机系统和编码方案而有所不同。
而正如我们前面说到的:扩展ASCII字符集的具体范围和定义不是标准化的,因此可能会因不同的计算机系统和编码方案而有所不同。此时各国都制定了自己的扩展ASCII字符集,都有自己独特的后128位表示,一共搞出了两百多种扩展ASCII表,此时字符集编码迎来了一个混乱的纪元:一个二进制数字在不同的字符集编码中对应的字符也不同,哪怕是同一份文本,放到不同的计算机中打开,显示的内容也可能不同。
这种混乱的纪元一直持续到 中日韩 进入信息化时代迎来爆发
原因很简单:这三个国家的字实在是太多了,一个字节的256种状态已经无法满足人们的正常需求了
我们以中国做简单的例子讲解:
1980年中国统计的常用汉字为6763个汉字,因此我们推出了我们自己的字符集:
GB2312-80
GB2312-80是中华人民共和国国家标准GB 2312-1980的简称。它是一种汉字字符集编码方式,由6763个常用汉字和682个非汉字符号组成,共计7445个字符。GB2312-80取代了GB2312-80之前使用的GB2312-80编码,成为计算机上最常用的中文字符集之一。它以双字节编码形式表示汉字,每个汉字由一个区号和一个位号组成。GB2312-80的字符编码范围被广泛应用于计算机系统、操作系统、数据库、通信协议等领域,为中文信息处理提供了基础支持。
正是因为我们的汉字字符集太多,因此使用了两个字节的空间,这也就是为什么中文的","要比英文的”,“看起来更加宽的原因。
GB2312-80截选展示
而此时虽然我们有了自己的字符集,但是仍然无法满足日常的需求,因此会出现一些地区上户口的时候,因为名字中含有生僻字,电脑识别不了打不出来而被迫改名的情况。
而随着中日韩三国对于字符集编码的疯狂扩展,微软也开始重视起来了这个问题。最终推出了:
GB2312
而我们国家对此再做了优化,补充了一些繁体字后,推出了汉字内码扩展规范:GBK
GBK(Guojia Biaozhun Kuozhan,国家标准扩展)是在GB2312的基础上进行扩展而来的字符集编码方案。GBK于1995年发布,使用双字节编码,但扩展了GB2312中未包含的很多生僻字和繁体字,以及包括繁体字在内的其他语种的字符。
因此,可以说GBK是GB2312的一个扩展版本,它在GB2312的基础上增加了更多的字符,使得可以更好地满足多种语言的需求。
需要注意的是,尽管GB2312和GBK都是被广泛用于简体中文编码的字符集,但它们并不兼容于Unicode或UTF-8等国际化的字符集编码方案。为了更好地支持多语言和国际化,后来出现了更先进的字符集编码方案,如GB18030。
而进行到这里,海量的字符集编码为人类计算机交流带来的苦难,已经让人叫苦不得,因此建立一个统一的字符集编码变成了众望所归。
🌍UNICODE(万国码)
UNICODE(万国码)是一种用于表示世界上几乎所有字符的字符集编码方案。它的目标是为所有的书写系统和符号提供一个统一的编码标准,以便在计算机系统中进行交换、存储和处理。
它的优势在于统一了字符的编码方案,使得不同语言、不同符号可以在同一个系统上相互兼容。UNICODE使用了32位的编码空间,可以表示超过100万个不同的字符。
最常见的UNICODE编码方案是UTF-8(Unicode Transformation Format 8-bit),它是一种可变长度的编码方式,可以使用1至4个字节来表示不同的字符。UTF-8通过自适应字节序列来支持各种语言和字符,因此在互联网和计算机系统中得到广泛应用。
除了UTF-8,还有其他的UNICODE编码方案,如UTF-16和UTF-32,它们使用固定长度的编码方式,分别使用16位和32位来表示字符。这些编码方案主要用于特定领域或特殊需求中。
万国码节选图片:
而万国码的收录方式也埋下了一个很大的坑,甚至到现在还在被别有用心的人利用的案例。但在这里我们不做介绍,感兴趣的人可以自行了解。
而现在有的软件还在默认使用GBK编码,当我们尝试用这个软件打开一个使用UNICODE编码的字符集的时候,自然就会出现乱码。
而字符集发展到UNICODE阶段,基本上痛点问题已经被解决,而随着越来越多的软件适配UNICODE,我们的字符乱码事件也会越来越少。
关于字符集的介绍就到这里了。
那么回到开头那个问题:为什么你从某些网站上面复制的文字,粘贴下来就成了乱码呢?
答案呼之欲出,其实就是这个网站设计了自己的一套字符编码,例如他们的”对“字所对应的编码,实际上在你的字符集编码中对应的是“颢”字,而这样大量的文字粘贴,也就成了一大堆乱码。
总结:
本文我们为大家介绍了计算机中的一个趣味知识:字符集编码。我们很幸运没有经历过那个字符表编码混战的年代。讲解字符码发展的历史,我们一路从字符码的初代ASCII一直讲到今天广泛应用的UNICODE,不知道你在使用这些字符编码的时候,是否也会想到人类为此付出的努力呢?
如果我的内容对你有帮助,请点赞,评论,收藏。创作不易,大家的支持就是我坚持下去的动力!文章来源:https://www.toymoban.com/news/detail-621653.html
文章来源地址https://www.toymoban.com/news/detail-621653.html
到了这里,关于【知识点随笔分享 | 第二篇】众多的字符集的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!