Unicode和Utf-8詳細解說

  一、ANSI (American National Standards Institute,美國國家標準協會)制定的「ASCII」編碼(American Standard Code for Information Interchange,美國信息互換標準代碼)。那時世界上全部的計算機都用一樣的ASCII方案來保存英文文字,是基於拉丁字母的一套電腦編碼系統,主要是用於顯示現代英語和其餘西歐的語言,它是現今最通用的單字節編碼系統,等同於國際標準ISO/IEC 646。
react

  下面咱們來看一下,ASCII表格。編碼

  ASCII碼爲7位,佔一個字節(最高爲0),它存放時必須佔全一個字節,也即佔用8位。ASCII編碼是由ANSI(美國國家標準協會)制定的一種包括數字、字母、通用符號、控制符號在內的字符編碼集。spa

 編碼簡單描述:設計

(1)ASCII碼:美國人最初把本身的語言用計算表示,發現0-127能夠表示數字、字母、通用符號、控制符號。(7位,佔用1個字節。)3d

(2)ISO 8899-1:歐洲人研發,0-127是ASCII碼,128-255加了一些特殊的字符。(佔用1個字節。)code

(3)GBK:中國人研發,兼容ASCII碼來表示中文。(佔用兩個2字節。)orm

(4)Unicode:設計出全世界語言的對應編碼,就像編了一本大漢語詞典。 blog

        定義地址範圍:3個字節(編碼表的編號從0一直算到了100多萬)。utf-8

        字符都有惟一的編號,這就解決了解碼的衝突。資源

        沒有爲編碼的二進制傳輸和二進制解碼做出規定。

因而,就出現了以下解決方案:utf-8(1個字節), utf-16(2個字節), utf-32(4個字節)這些編碼方案。

utf-8這種解決方案,用得最多,由於在當時它的方案最好,最節省資源。

utf-8爲了節省資源,採用變長編碼,編碼長度從1個字節到6個字節不等。

UTF-8的編碼規則很簡單,只有二條:
一、對於單字節的符號,字節的第一位設爲0,後面7位爲這個符號的unicode碼。所以對於英語字母,UTF-8編碼和ASCII碼是相同的。
二、對於n字節的符號(n>1),第一個字節的前n位都設爲1,第n個字節的第n+1位設爲0,後面字節的前兩位一概設爲10。剩下的沒有說起的二進制位,所有爲這個符號的unicode碼。

 

提問:後面字節的前兩位一概設爲10,爲何呢?

後面字節的前兩位一概設爲10(10000000也就是80)是由於必需要大於7F才和ASCII碼分開。

下面,咱們來宏觀的看一下UTF-8和Unicode是怎麼工做的吧?

相關文章
相關標籤/搜索