网页制作基础知识:全面学习掌握字符编码
由于“字符编码”这个话题牵涉到的历史久远、机构众多、专业术语较多,所以本篇文章可能会略长,为了避免内容过于枯燥,我会尽量用一种通俗易懂的语言来写这篇文章。
其中本文的第一篇章会对历史中的主要字符编码进行介绍,由于篇幅较长,如果读者对此已很了解,可直接跳过进行第二章的阅读。
完成本篇文章的过程中参考和阅读了大量的文章和文献,写本篇文章的目的一是让自己对“字符编码”能够做一个较深的理解,二是希望给曾经徘徊或正在徘徊在编码困惑中的前端们一个很好的参考,搞清楚字符编码问题是前端万事之基石。由于本人才疏学浅,好多信息也是从网络和书籍中参考而来,错误之处难免,请大家指正。——————题记
跟随历史的足迹看字符编码
古代的通信方式
很久很久以前,人们之间的长途通讯主要是用信鸽、骑马送报、烽烟等方式进行:
不过这些方式无不例外都是出奇的慢,同时也受天气、地理等因素的影响。
世界第一条电报
直到1837年,世界第一条电报诞生,当时美国科学家莫尔斯尝试用一些“点”和“划”来表示不同的字母、数字和标点符号,这套表示字符的方式也被称为“摩尔斯电码”:
世界第一台计算机
再后来到了1946年,世界第一台计算机诞生。发明计算机的同学们用8个晶体管的“通”或“断”组合出一些状态来表示世间万物,不过当时的计算机有一间半教室那么大,六头大象重,从现在看来这简直就是个怪物,但在当时却是震惊世界与改变世界的一项重要发明:
ASCII
8个晶体管的“通”或“断”即可以代表一个字节,刚开始,计算机只在美国使用,所有的信息在计算机最底层都是以二进制(“0”或“1”两种不同的状态)的方式存储,而8位的字节一共可以组合出256(2的8次方)种状态,即256个字符,这对于当时的美国已经是足够的了,他们尝试把一些终端的动作、字母、数字和符号用8位(bit)来组合:
- 0000 0000 ~ 0001 1111 共 33 种状态用来表示终端的特殊动作,如打印机中的响铃为 0000 0111 ,当打印机遇到 0000 0111 这样的字节传过来时,打印机就开始响铃;
- 0010 0000 ~ 0010 1111 、 0011 1010~0110 0000 和 0111 1101 ~ 0111 1110 共 33 种状态来表示英式标点符号,如 0011 1111 既代表英式问号“?”;
- 0011 0000 ~ 0011 1001 共 10 种状态来表示“0~9”10个阿拉伯数字;
- 0100 0001 ~ 0101 1010 和 0110 0001 ~ 0111 1010共 52种状态来表示大小写英文字母;
自此,一共只用到了128种状态,即128个字符,刚好占用了一个字节中的后7位,共包括33个控制字符和95个可显示字符,这一字符集被称为ASCII(American Standard Code for Information Interchange,美国信息交换标准代码),这一套字符集在1967年被正式公布。
讲到这里,引出几个基础概念:
- 比特(bit):也可称为“位”,是计算机信息中的最小单位,是 binary digit(二进制数位) 的 缩写,指二进制中的一位
- 字节(Byte):计算机中信息计量的一种单位,一个位就代表“0”或“1”,每8个位(bit)组成一个字节(Byte)
- 字符(Character):文字与符号的总称,可以是各个国家的文字、标点符号、图形符号、数字等
- 字符集(Character Set):是多个字符的集合
- 编码(Encoding): 信息从一种形式或格式转换为另一种形式的过程
- 解码(decoding): 编码的逆过程
- 字符编码(Character Encoding): 按照何种规则存储字符
现在我们来看我们文章开头提到的第一条电报的诞生,莫尔斯编码中包含了大小写英文字母和数字等符号。
这里的每一个符号其实就是⌈字符⌋,
而这所有的字符的集合就叫做⌈字符集⌋,
“点”或“划”与字符之间的对应关系即可以称为⌈字符编码⌋。
而电报的原理是:
相关新闻>>
- 发表评论
-
- 最新评论 进入详细评论页>>