ASCII | UTF-8 | UTF-16 | UTF-32 | Big5 |
Intro
ASCII (ISO/IEC 646)
Item | Content |
---|---|
MIME / IANA | us-ascii |
字節長度 (Byte length) | 1 byte |
定義字元 (Characters) | 128個 (7bits) Hex: 00-8F |
控制字元 (Control code) | 0-37, 127 |
Unicode (ISO 10646)
在表示一個 Unicode 字元時,通常會用「U+」然後接續一組十六進位的數字來表示這一個字元。在基本多文種平面 (BMP) 裏的所有字元,要用四個數字 (即2位元組,共16位元,例如U+4AE0,共支援六萬多個字元),其他 Plane 如 Supplementary Multilingual Plane,或簡稱Plane 1) 則使用到六個數字 (即3位元組,例如U+21619)。
Unicode 的實現方式不同於字元編碼方式。同一個 Unicode 字元可以由不同 Unicode 轉換格式 (Unicode Transformation Format,簡稱為UTF) 實現編碼。
UTF-8
適用場景:普遍預設首選,在英數(1 byte)為主+多國語系混雜的應用下達到 Unicode 家族最佳長度
Item | Content |
---|---|
擴展來源 (Extends) | ACSII |
字節長度 (Byte length) | 1~4 bytes (RFC 3629) |
BOM (非必要) | EF BB BF |
Byte length | Characters | Byte 1 | Byte 2 | Byte 3 | Byte 4 | Content |
---|---|---|---|---|---|---|
1 byte | 128個 | 0xxxxxxx | ASCII | |||
2 bytes | 1920個 | 110xxxxx | 10xxxxxx | 帶附加符號的字母 | ||
3 bytes | 61440個 | 1110xxxx | 10xxxxxx | 10xxxxxx | BMP字元(如中文) | |
4 bytes | 1048576個 | 11110xxx | 10xxxxxx | 10xxxxxx | 10xxxxxx | 極少使用的輔助平面的字元(如emoji) |
UTF-16
適用場景:多國語系為主的應用下達到 Unicode 家族最佳長度
Item | Content |
---|---|
ACSII編碼 | 不相容 |
字節長度 (Byte length) | 2 or 4 bytes |
BOM (BE大端序) | FE FF |
BOM (LE小端序) | FF FE |
Byte length | Characters | Byte 1 | Byte 2 | Byte 3 | Byte 4 | Content |
---|---|---|---|---|---|---|
2 bytes | 65536 (63488個) |
xxxxxxxx | xxxxxxxx | BMP字元(如中文) | ||
4 bytes | 1048576 (524288個) |
110110xx 110111xx |
xxxxxxxx | 110111xx 110110xx |
xxxxxxxx | 極少使用的輔助平面的字元(如emoji) |
UTF-32 (不常用)
適用場景:同時支援多國語系且規格以 byte 長度為主的資料交換應用
Item | Content |
---|---|
ACSII編碼 | 不相容 |
字節長度 (Byte length) | 4 bytes |
BOM (BE大端序) | 00 00 FE FF |
BOM (LE小端序) | FF FE 00 00 |
Big5 (繁體中文)
逐漸被淘汰的歷史標準,沒特殊原因選 UTF-8 即可
Item | Content |
---|---|
擴展來源 (Extends) | ACSII |
擴展應用 (Extensions) | Big5-HKSCS |
字節長度 (Byte length) | 1~2 bytes |
定義字元 (Characters) | 13060 個漢字 |
其中兼容 ACSII 占 1 byte (0x40~0x7E), 字元集占 2 bytes