编码方式 | 描述 |
---|---|
ANSI编码 | 常见于window,与windows操作系统所面向的国家地区有关 |
在简体中文Windows操作系统中,ANSI 编码代表 GBK 编码 | |
在繁体中文Windows操作系统中,ANSI 编码代表Big5 编码 | |
在日文Windows操作系统中,ANSI 编码代表 Shift_JIS 编码 | |
Unicode编码 | 用数字0-0x10FFFF来映射世界上所有文字和符号的字符编码方案 |
Unicode使用了17个平面,每个平面有2^16=65536个码位 | |
平面0被称作BMP(Basic Multilingual Plane) | |
GBK | 0x8140-0xFEFE ,总计 23940 个码位 |
GBK2312 | 0xB0A1-0xF7FE,收录汉字 6763 个 |
Unicode在传输及具体实现过程中,有3种方式UTF-8,UTF-16,UTF-32:
编码规则 | BOM头(又是微软提出的) | 描述 |
---|---|---|
UTF-8 | EF BB BF | 0000 - 007F 0xxxxxxx 7 位 |
0080 - 07FF 110xxxxx 10xxxxxx 11位 | ||
0800 - FFFF 1110xxxx 10xxxxxx 10xxxxxx 16位 | ||
所以utf-8编码下的中文实际占3个字节 | ||
UTF-16/UCS-2, little endian(UTF-16LE) | FE FF | |
UTF-16/UCS-2, big endian(UTF-16BE) | FF FE | Java的Unicode是这样的 |
UTF-32/UCS-4, little endian. | FF FE 00 00 | |
UTF-32/UCS-4, big-endia | 00 00 FE FF |