1、字符集演变历史
Ascii:
计算机最初的设计是使用一个字节来表示一个字符,0-127用来表示字母和字符,128-255用于扩展。
GBK:
由于存在很多使用象形文字的国家(如中国),256个字符根本不够用,常用的汉字就要6千多个,于是我国提出了中文编码标准GBK 。
Unicode:
由于各国人民都使用自己的字符编码集,交流起开很不方便,于是 ISO (国际标谁化组织)提出了统一的标准Unicode;Unicode使用两个字节表示字符;为了兼容Ascii字符,原有的Ascii字符低字节不变,高字节取0。Unicode的实现有Utf-8 Utf-16 Utf-32等
Utf-8:
Utf-8是对Unicode实现,是目前网络传输使用的字符集。
UTF-8最大的一个特点,就是它是一种变长的编码方式。它可以使用1~4个字节表示一个符号,根据不同的符号而变化字节长度,当字符在ASCII码的范围时,就用一个字节表示,保留了ASCII字符一个字节的编码做为它的一部分,注意的是unicode一个中文字符占2个字节,而UTF-8一个中文字符占3个字节)。从unicode到uft-8并不是直接的对应,而是要过一些算法和规则来转换。
Unicode符号范围 | UTF-8编码方式
(十六进制) | (二进制)
—————————————————————–
0000 0000-0000 007F | 0xxxxxxx
0000 0080-0000 07FF | 110xxxxx 10xxxxxx
0000 0800-0000 FFFF | 1110xxxx 10xxxxxx 10xxxxxx
0001 0000-0010 FFFF | 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
记事本保存时可以选择编码,windows的Utf-8是默认带Bom的
参考资料: