“浅入深处“编码历史,字符串编码(ASCII, GBK, ANSI, Unicode, UTF-8编码),为什么记事本默认ANSI编码,Unicode和UTF8有什么区别

迅速了解编码的发展历程:

ASCII => GB2312 => GBK=>gb18030 => ISO-8859-1(Unicode)(latin-1) => UTF-8(Unicode)

从ASCII码谈起

ASCII码:16384个字符。这就是ANSI字符标准。英文一个字节,中文两个字节。

早期计算机(美国人造的),用ASCII编码(一个字节,8位,可以表示256个编码,实际英语世界里字母、数字和常用符号完全够用)

但是随着计算机的发展,需要更加人性化的编码来适应世界,于是编码的迭代开始了

中国人民通过对 ASCII 编码的中文扩充改造,产生了 GB2312 编码,可以表示6000多个常用汉字。

汉字实在是太多了,包括繁体和各种字符,于是产生了 GBK 编码,它包括了 GB2312 中的编码,同时进行了大量扩充

GBK 是又一个汉字编码标准,全称《汉字内码扩展规范》(GBK),英文名称 Chinese Internal Code Specification

中国的中文编码表升级,融合了更多的中文文字符号。

中国是个多民族国家,各个民族几乎都有自己独立的语言系统,为了表示那些字符,继续把 GBK 编码扩充为 GB18030 编码。

每个国家都像中国一样,把自己的语言编码,于是出现了各种各样的编码,如果你不安装相应的编码,就无法解释相应编码想表达的内容。

最后有个叫 ISO 的组织,他们一起创造了一种编码 Unicode(中英文都占取两个字节),这种编码可以容纳世界上任何一个文字和标志。所以只要电脑上有Unicode这种编码系统,无论是全球哪种文字,只需要保存文件的时候,保存成Unicode编码就可以被其它电脑正常解释。

Unicode 在网络传输中,出现了两个标准 UTF-8 (中文三个字节,英文一个字节)和 UTF-16,分别每次传输 8个位和 16个位。

UTF-8 就是在互联网上使用最广的一种 Unicode 的实现方式, UTF-8 最大的一个特点,就是它是一种变长的编码方式。它可以使用1~4个字节表示一个符号,根据不同的符号而变化字节长度。


你可能有迷惑:

为什么Unicode使用那么广泛,更适应全世界使用,我们的记事本还是用的是ASCII码呢?

ANSI:并不是某一种特定的字符编码。在不同的系统中,ANSI 表示不同的编码,美国的系统中ANSI编码其实是ASCII编码,ASCII 编码不能表示汉字,所以汉字我们可以看到汉字为乱码,而你的系统中 汉字 之所以能够正常显示,ANSI编码其实是GBK编码;而韩文系统中(“한국어”正常显示)ANSI编码其实是EUC-KR编码)

windows 系统通过 Windows code pages 的值来确定当前系统的编码方式(ANSI 只存在于 Windows 系统,不同地区发行的系统,ANSI指代不同)

(根据装的系统编码来决定的)

Unicode:

使用两个字节对世界上几乎所有的语言进行编码

(0x0000-0xFFFF)

Unicode是针对所有计算机的使用者定义一套统一的编码规范,这样计算机使用者就避免了编码转换的问题。

UTF-8(Unicode transfer format -8 ,后面的8代表是以8位二进制为单位来传输符号的)

它 是 Unicode 一种压缩形式,英文 A 在 Unicode 中表示为 0x0041,老外觉得这种存储方式太浪费,因为浪费了 50% 的空间,于是就把英文压缩成 1 个字节,成了 utf8 编码,但是汉字在 utf8 中占 3 个字节,显然用作中文不如 ansi 合算,这就是中国有时候用ansi而不用 UTF8 的原因

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

即兴小索奇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值