平面 - plane
共 17 個平面溯街,每個平面占 65536 個字符
基本多文種平面 - Basic Multilingual Plane(0x0~0xFFFF)
其余16種補充/輔助平面(0x10000 ~ 0x10FFFF)
編碼空間
0x0~ 0x10FFFF
存儲定義
UCS - Universal Character Set
ISO/IEC 10646 定義
- UCS-2
編碼空間為 0x0 ~ 0xFFFF
無輔助平面
兼容 Unicode颂翼,保留 0xD800 ~ 0xDFFF - UCS-4
舊定義
編碼空間為 0x0 ~ 0x7FFFFFFF
新定義
編碼空間限制為 Unicode (0x0~ 0x10FFFF)
ISO 承諾不會為超過 0x10FFFF 進行編碼
UTF - Unicode Transformation Format
UTF-8
變長編碼(1~4字節(jié))
編碼空間為 0x0 ~ 0x10FFFF
對于單字節(jié)的符號
字節(jié)第一位設為 0
后面7位填充編碼值
對于 0x0~0x7F, UTF-8 和 ASCII 碼是一致的對于 n 字節(jié)的符號(n>1)
第一個字節(jié)的前 n 位 都是1
第 n + 1 位設置為 0
后面字節(jié)的前兩位為 10
其余空位填充為編碼值舊的定義
定義1~6字節(jié)
RFC 2044
RFC 2279-
新的定義 RFC 3629
定義為1~4字節(jié)編碼范圍 字符數(shù) Unicode UTF-8 0x000000 ~ 0x00007F 128 00000000 00000000 0zzzzzzz 0zzzzzzz(00-7F) 0x000080 ~ 0x0007FF 1920 00000000 00000yyy yyzzzzzz 110yyyyy(C0-DF)10zzzzzz(80-BF) 0x000800 ~ 0x00D7FF
0x00E000 ~ 0x00FFFF61440 00000000 xxxxyyyy yyzzzzzz 1110xxxx(E0-EF)10yyyyyy(80-BF)10zzzzzz(80-BF) 0x010000 ~ 0x10FFFF 1048576 000wwwxx xxxxyyyy yyzzzzzz 11110www(F0-F7)10xxxxxx(80-BF)10yyyyyy(80-BF)10zzzzzz(80-BF)
UTF-16
變長編碼(2或4字節(jié))
編碼空間為 0x0 ~ 0x10FFFF
- 與 UCS-2 區(qū)別
UTF-16 是 UCS-2 父集
當表示 BMP 時贝搁, 與 USC-2 編碼一致都是16-bit
當表示輔助平面時蔬胯,UTF-16為 32-bit,而UCS-2不能表示 - 輔助平面表示
碼位值 - 0x10000 得到 20-bit 的值(0x0 ~ 0xFFFFF)
該值前10位 + 0xD800(0xD800 ~ 0xDBFF)
該值后10位 + 0xDC00(0xDC00 ~ 0xDFFF )
連接以上兩個值得到最終編碼值
UTF-32
固定 32-bit 編碼蚁署,與 Unicode 編碼數(shù)值一致
編碼空間為 0x0 ~ 0x10FFFF
- 與 UCS-4 區(qū)別
舊定義: UTF-32是 UCS-4 的一個子集
新定義: 可以認為與 UCS-4 是相同