ASCII,Unicode 和 UTF-8

ASCII:

英文的编码方式,规定了128个字符的编码,使用了一个字节的后七位表示。

Unicode :

每个国家的字符集都不同,世界上所有的字符远远超过128个。Unicode,就是一种所有符号的编码。

但Unicode有两个严重的问题:第一个问题是,如何才能区别 Unicode 和 ASCII ?计算机怎么知道三个字节表示一个符号,而不是分别表示三个符号呢?
第二个问题是,英文字母只用一个字节表示就够了,如果 Unicode 统一规定每个符号用三个或四个字节表示,那么每个英文字母前都必然有二到三个字节是0,这对于存储来说是极大的浪费,文本文件的大小会因此大出二三倍,这是无法接受的。

UTF-8:

UTF-8它是一种变长的编码方式。它可以使用1~4个字节表示一个符号,根据不同的符号而变化字节长度。

UTF-8 的编码规则很简单,只有二条:

1)对于单字节的符号,字节的第一位设为0,后面7位为这个符号的 Unicode 码。因此对于英语字母,UTF-8 编码和 ASCII 码是相同的。

2)对于n字节的符号(n > 1),第一个字节的前n位都设为1,第n + 1位设为0,后面字节的前两位一律设为10。剩下的没有提及的二进制位,全部为这个符号的 Unicode 码。

 

posted on 2018-02-07 09:54  screamo  阅读(144)  评论(0编辑  收藏  举报

导航