基本介紹
- 中文名:標準編碼格式
- 外文名:standard encoding format
- 領域:計算機
- 意義:保證編碼的正確性
- 標準編碼格式:ASCII、ANSI、GBK、GB2312等
- 編碼規則:單位元組字元編碼、ANSI編碼等
編碼
概念
字元集與編碼
- 使用哪些字元。也就是說哪些漢字,字母和符號會被收入標準中。所包含“字元”的集合就叫做“字元集”。
- 規定每個“字元”分別用一個位元組還是多個位元組存儲,用哪些位元組來存儲,這個規定就叫做“編碼”。
意義
發展
系統內碼 | 說明 | 系統 | |
階段一 | ASCII | 計算機剛開始只支持英語,其它語言不能夠在計算機上存儲和顯示。 | 英文 DOS |
階段二 | ANSI編碼 (本地化) | 為使計算機支持更多語言,通常使用 0x80~0xFF 範圍的 2 個位元組來表示 1 個字元。比如:漢字 '中' 在中文作業系統中,使用 [0xD6,0xD0] 這兩個位元組存儲。 不同的國家和地區制定了不同的標準,由此產生了 GB2312, BIG5, JIS 等各自的編碼標準。這些使用 2 個位元組來代表一個字元的各種漢字延伸編碼方式,稱為ANSI 編碼。在簡體中文系統下,ANSI 編碼代表 GB2312 編碼,在日文作業系統下,ANSI 編碼代表 JIS 編碼。 不同 ANSI 編碼之間互不兼容,當信息在國際間交流時,無法將屬於兩種語言的文字,存儲在同一段ANSI 編碼的文本中。 | 中文 DOS,中文 Windows 95/98,日文 Windows 95/98 |
階段三 | UNICODE (國際化) | 為了使國際間信息交流更加方便,國際組織制定了UNICODE 字元集,為各種語言中的每一個字元設定了統一併且唯一的數字編號,以滿足跨語言、跨平台進行文本轉換、處理的要求。 | Windows NT/2000/XP,Linux,Java |
42 | 6F | 62 | 31 | 32 | 33 | 00 |
B | o | b | 1 | 2 | 3 | \0 |
D6 | D0 | CE | C4 | 31 | 32 | 33 | 00 |
中 | 文 | 1 | 2 | 3 | \0 |
2D | 4E | 87 | 65 | 31 | 00 | 32 | 00 | 33 | 00 | 00 | 00 | ← 在 x86 CPU 中,低位元組在前 |
中 | 文 | 1 | 2 | 3 | \0 |
常見格式
分類 | 編碼標準 | 說明 |
單位元組字元編碼 | ISO-8859-1 | 最簡單的編碼規則,每一個位元組直接作為一個 UNICODE 字元。比如,[0xD6, 0xD0] 這兩個位元組,通過 iso-8859-1 轉化為字元串時,將直接得到 [0x00D6, 0x00D0] 兩個 UNICODE 字元,即 "ÖÐ"。 反之,將 UNICODE 字元串通過 iso-8859-1 轉化為位元組串時,只能正常轉化 0~255 範圍的字元。 |
ANSI 編碼 | GB2312, BIG5, Shift_JIS, ISO-8859-2 …… | 把 UNICODE 字元串通過 ANSI 編碼轉化為“位元組串”時,根據各自編碼的規定,一個 UNICODE 字元可能轉化成一個位元組或多個位元組。 反之,將位元組串轉化成字元串時,也可能多個位元組轉化成一個字元。比如,[0xD6, 0xD0] 這兩個位元組,通過 GB2312 轉化為字元串時,將得到 [0x4E2D] 一個字元,即 '中' 字。 “ANSI 編碼”的特點: 1. 這些“ANSI 編碼標準”都只能處理各自語言範圍之內的 UNICODE 字元。 2. “UNICODE 字元”與“轉換出來的位元組”之間的關係是人為規定的。 |
UNICODE 編碼 | UTF-8, UTF-16, UnicodeBig …… | 與“ANSI 編碼”類似的,把字元串通過 UNICODE 編碼轉化成“位元組串”時,一個 UNICODE 字元可能轉化成一個位元組或多個位元組。 與“ANSI 編碼”不同的是: 1. 這些“UNICODE 編碼”能夠處理所有的 UNICODE 字元。 2. “UNICODE 字元”與“轉換出來的位元組”之間是可以通過計算得到的。 |