天才一秒记住【热天中文网】地址:https://www.rtzw.net
1、编码。
英文天然是编码语言,这显然更适合机器实现。
尤其是在计算机发展初期,硬件技术还很简陋,较少的编码显然更容易实现。
英文字母只有26个,加上常用符号也只需7位二进制便可表示。
英文字母笔划简单,只要8x8点阵就可以显示蛮好的字符。
虽然随着硬件技术的发展,现在字符少笔划简单已经不再是问题,但历史积累却留下了。
现代计算机最小的操作单元是字节,8位二进制。
表示英文钓钓有鱼。
而其它字符只能以多字节表示。
现在的各种编码方案都给英文字母是特殊地位。
比如尽管unide面向所有代码,但英文字母却特别地只用8位。
所以,其它语言一旦不了解原有的编码方案,就不能正确解码,都成了乱码。
而英文字符却永远没有乱码。
2、积累
第二个优势是没有办法的,也就是历史的积累。
现在计算机学科几乎所有重要的文档、软件、论文都是英文的或者都有英文的,并都以英语习惯编写。
对于母语是其它语言的就是天然屏障。
那么解决方案呢?第二个积累没有办法,只能靠时间慢慢解决。
来说编码。
根据前面分析,产生乱码的原因是多字节造成的。
以前硬件不行,8位已经是天了(让tel成名的是4004,4位机)。
8位最多只有256个符号,表示汉字显然不行。
如果从软硬件统一定义16位为最小操作单位,即一字节为16位。
那么,汉字就与ascii完全同等地位。
同时显示字模也以16x16为基本显示模式,由硬件完成。
那样,汉字就与英文字母完全同等地位
【比如尽管unide面向所有代码,但英文字母却特别地只用8位。
】——错的。
unide编码是所有的文字全部用16
unide编码至少存在两个严重的问题:1对大量英语国家(特别是美国等发达国家就是用英语、英语也是世界使用最广泛的语言)反而不兼容,原来一字节表示一字母,unide改用2字节(一字节和ascii一样,另一字节是0);2编程语言中如c,字符串使用编码为0的作为结束符,而unide字符有0编码(特别是英文字符每个都有0),因此unide不能用在c语言中。
为此在unide编码的基础上,重新定义了几个变种的编码,utf-8utf-16等,其中utf-8是最常用的一种编码,它是一种变长度编码,规定:英文和ascii码兼容,还是1字节编码,其它国家文字,用2-3字节不等的长度表示(由于英文占用了大量编码空间,其余还用2字节就不够用了,必须有3字节的文字)。
网页编码大量采用utf-8,在同一网页中,可显示不同的文字。
本章未完,请点击下一章继续阅读!若浏览器显示没有新章节了,请尝试点击右上角↗️或右下角↘️的菜单,退出阅读模式即可,谢谢!