1. 程式人生 > >APP開發實戰15-字元編碼介紹

APP開發實戰15-字元編碼介紹

5 字元編碼介紹

5.1 簡介

5.1.1字元

字元是抽象的最小文字單位。它沒有固定的形狀(可能是一個字形),而且沒有值。“A”是一個字元,“€”(德國、法國和許多其他歐洲國家通用貨幣的標誌)也是一個字元。“中”“國”這是兩個漢字字元。字元僅僅代表一個符號,沒有任何實際值的意義。

5.1.2字符集

字符集是字元的集合。例如,漢字字元是中國人最先發明的字元,在中文、日文、韓文和越南文的書寫中使用。這也說明了字元和字符集之間的關係,字元組成字符集(iso8859-1,GB2312/GBK,unicode)。

5.1.3程式碼點

字符集中的每個字元都被分配到一個“程式碼點”。每個程式碼點都有一個特定的唯一數值,稱為標值。該標量值通常用十六進位制表示。

5.1.4程式碼單元

在每種編碼形式中,程式碼點被對映到一個或多個程式碼單元。“程式碼單元”是各個編碼方式中的單個單元。程式碼單元的大小等效於特定編碼方式的位數: UTF-8 :UTF-8 中的程式碼單元由 8 位組成;在 UTF-8 中,因為程式碼單元較小的緣故,每個程式碼點常常被對映到多個程式碼單元。程式碼點將被對映到一個、兩個、三個或四個程式碼單元;

UTF-16:

UTF-16 中的程式碼單元由 16 位組成;UTF-16 的程式碼單元大小是 8 位程式碼單元的兩倍。所以,標量值小於 U+10000 的程式碼點被編碼到單個程式碼單元中;

UTF-32:

UTF-32 中的程式碼單元由 32 位組成; UTF-32 中使用的 32 位程式碼單元足夠大,每個程式碼點都可編碼為單個程式碼單元;

GB18030:

GB18030 中的程式碼單元由 8 位組成;在 GB18030 中,因為程式碼單元較小的緣故,每個程式碼點常常被對映到多個程式碼單元。程式碼點將被對映到一個、兩個或四個程式碼單元。