发展历史: ACSII->GBK->UNICODE
- 半角字符:一个字节
- 全角字符:2个字节
GBK,UNICODE均为一种符号集,而UTF-8为一种编码方式,用于传输数据
字符集
ASCII
通过一个字节,即8位来表示128中状态,最前面的1位统一为1
GBK
由于基于ASCII的符号集不能表示中文字符,故对于中文字符采用2个字节表示。
一个字节<127的字符意义不变,对于两个同时>127的字节,代表的为中文汉字。
-
UNICODE
只是一个符号集,可容纳全世界所有语言符号的符号集,仅仅规定了符号的二进制代码。
没有规定代码该如何存储! 如何区别unicode和ascii?
- 如何区别三个字节表示一个符号,而不是分别表示三个符号
故这时候UTF-8 UTF-16等编码方式便出来了,规定了unicode字符集到UTF的映射方式
编码方式
UTF-8
一种编码方式,一个字节包含8bit; 特点:变长的编码方式,使用1~6个字节表示一个符号
编码规则:
X为补位符号,用UNICODE码填补
大端和小端
以汉字”严”为例, Unicode码
是4E25, 需要用两个字节存储, 一个字节是4E, 另一个字节是25. 存储的时候, 4E在前,
25在后, 就是Big endian方式; 25在前, 4E在后, 就是Little endian方式.
// Big Endian(4E25) Little Endian(254E)
如何确定大小端
每一个文件最前面会加入一个表示编码顺序的字符
// Big Endian(FEFF) Little Endian(FFFE)
*
` `` 注意:<br />
* 1. UTF8没有字节序问题, 但是Unicode有字节序要求;`<br />`
字节序分为大端(Big Endian)和小端(Little Endian)两种;<br />
`` 在Intel处理器中采用小端法表示, 在此采用小端法表示. (低地址存低位)`