unicode,utf-8

weixin_34320159發表於2017-05-24

字符集:字符集規定了某個文字對應的二進位制數字存放方式(編碼)和某串二進位制數值代表了哪個文字(解碼)的轉換關係。計算機可以輸出列印的是實體化的文字,但是在計算機儲存中存放的是二進位制的bit流,如何把這兩者之間做準確的互相轉換就需要一個標準,字符集就規定了這個標準。

字元編碼:字符集只是一個規則集合的名字,要正確編碼轉碼一個字元需要3個元素:字型檔表(儲存所有可顯示的字元),編碼字符集(用一個編碼值表示一個字元在字型檔中的位置),字元編碼(把編碼字符集和實際儲存數值之間的轉換關係),栗子:在ASCll中A在表中排65,所以A編碼後的數值01000001等於十進位制的65轉換成二進位制的結果。

utf-8:UTF-8編碼為變長編碼。最小編碼單位是一個位元組。一個位元組的前1-3個bit為描述性部分,後面為實際序號部分。
如果一個位元組的第一位為0,那麼代表當前字元為單位元組字元,佔用一個位元組的空間。0之後的所有部分(7個bit)代表在Unicode中的序號。
如果一個位元組以110開頭,那麼代表當前字元為雙位元組字元,佔用2個位元組的空間。110之後的所有部分(7個bit)代表在Unicode中的序號。且第二個位元組以10開頭
如果一個位元組以1110開頭,那麼代表當前字元為三位元組字元,佔用2個位元組的空間。110之後的所有部分(7個bit)代表在Unicode中的序號。且第二、第三個位元組以10開頭
如果一個位元組以10開頭,那麼代表當前位元組為多位元組字元的第二個位元組。10之後的所有部分(6個bit)代表在Unicode中的序號。

uncode和utf-8的關係:Unicode就是編碼字符集,而UTF-8就是字元編碼,即Unicode字型檔的一種實現形式。

相關文章