字符集
UCS
- Universal Character Set,通用字符集。由ISO制定的ISO-10646标准所定义的标准字符集。
- UCS有2字节的UCS-2和4字节的UCS-4,UCS-2与Unicode兼容
BOM
- UCS编码中有一个叫做ZERO WIDTH NO-BREAK SPAC的字符,它的编码是0xFEFF。而0xFFFE在UCS中是不存在的字符,所以不应该出现在实际传输中。
- UCS规范建议在传输字节流前,先传输字符”ZERO WIDTH NO-BREAK SPACE“。如果收到0xFFFE,就表明这个字节流是小字节序的;如果接收者收到0xFEFF,就表明这个字节流是大字节序的。因此字符"ZERO WIDTH NO-BREAK SPACE"又被称作BOM
- UTF-8不需要BOM来表明字节顺序,但可以用BOM来表明编码方式。字符"ZERO WIDTH NO-BREAK SPACE"的UTF-8编码是0xEFBBBF。所以如果接收者收到以0xEFBBBF开头的字节流,就知道这是UTF-8编码
Unicode
- 统一码,或万国码。Unicode是基于UCS发展而来的字符集,它使用两个字节为每种语言中的每个字符设定了统一且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求
- 在Unicode官方资料中,Unicode的编码方式有三种:UTF-8、UTF-16和UTF-32。由于UTF-8与字节序无关(无需BOM),同时兼容ASCII编码,使得UTF-8编码成为现今互联网信息编码标准而被广泛使用
- 表示一个UCS或Unicode值的十六进制数通常在前面加上U+,例如"U+0041"代表字符’A’
字符编码
UTF-8
- Unicode Transformation Format,是一种基于Unicode的可变长度的字符编码。Unicode字符被编码为若干字节