ASCII码、Unicode码、UTF-8码之间的关系笔记

1、在计算机内部,所有的信息最终都被表示为一个二进制的字符串。每一个二级制位(bit)有0和1两种状态,因此8个二进制位就可以组合出2的8次方,即256种状态。8个二进制位被称为一个字节(byte).也就是说一个字节有256中不同的状态,每个状态对应一个符号,也就是256种符号,从00000000到11111111;

2、ASCII码有128个字符的编码,2的7次方,即128种字符符号,占用了一个字节的后面7位,最前面统一为0;

3、UTF-8是Unicode的实现方式,其他方式有UTF-16,UTF-32等
UTF-8编码啊规则:
3.1、单字节符号,字节第一位设为0,后面7位为这个符号的unicode码。因此英文字母的UTF-8编码和ASCII码是相同的;
3.2、n字节符号(n>1),用n*8个二进制位表示,从左往右,第一个字节的8个二进制位前n位都设为1,第n+1位设为0,后面字节的8个二进制位的前两位一律设为10,剩下的二进制位,全部为这个符号的unicode码,对出的位都补0;

4、Unicode规范中定义,每一个文件的最前面分别加入一个表示编码顺序的字符,这个字符的名字叫做"零宽度非换行空格"(ZERO WIDTH NO-BREAK SPACE),用FEFF表示。这正好是两个字节,而且FF比FE大1。
如果一个文本文件的头两个字节是FE FF,就表示该文件采用大头方式;如果头两个字节是FF FE,就表示该文件采用小头方式。

5、ANSI是默认的编码方式。对于英文文件是ASCII编码,对于简体中文文件是GB2312编码(只针对Windows简体中文版,如果是繁体中文版会采用Big5码)

6、UTF-8:编码是六个字节"EF BB BF E4 B8 A5",前三个字节"EF BB BF"表示这是UTF-8编码,后三个"E4B8A5"就是"严"的具体编码,它的存储顺序与编码顺序是一致的

你可能感兴趣的:(ASCII码、Unicode码、UTF-8码之间的关系笔记)