ASCII和Unicode編碼的區別


編碼 大小 支持語言
ASCII 1個字節 英文
Unicode 2個字節(生僻字4個) 所有語言
UTF-8 1-6個字節,英文字母1個字節,漢字3個字節,生僻字4-6個字節 所有語言

具體解釋:

  最早只有127個字母被編譯到計算機里,也就是大小寫字母、數字和一些符號,這個編譯表被稱為ASCII編碼,比如大寫字母A的編碼是65,小寫字母z的編碼是122。

  但是要處理中文顯然一個字節是不夠的,至少需要2個字節,而且還不能和ASCII編碼沖突,所以,中國制定了GB2312編碼,用來把中文編進去。

  你可以想得到的是,全世界有上百種語言,日本把日文編到Shift_JIS里,韓國把韓文編到Euc_kr里,各國有各國的標准,就會不可避免的出現沖突,結果就是,在多語言混合的文本中,顯示出來就會有亂碼。

  因此,Unicode應運而生。Unicode把所有的語言都統一到一套編碼里,這樣就不會再有亂碼問題了。

  Unicode標准也在不斷發展,但最常用的是用兩個字節表示一個字符(偏僻字符需要4個字符)。現代操作系統和大多數編程語言都直接支持Unicode。

  新的問題又出現了:如果統一成Unicode編碼,亂碼問題從此消失了。但是,如果你寫的文本基本上全是英文的話,用Unicode編碼比ASCII編碼需要多一倍的存儲空間,在存儲和傳輸上就十分不划算。

  所以,本着節約的精神,又出現了把Unicode編碼轉化為“可變長編碼”的UTF-8編碼。UTF-8編碼把一個Unicode字符根據不同的數字大小編碼成1-6個字節,常用的英文字母被編碼成1個字節,漢字通常是3個字節,只有很生僻的字符才會被編碼成4-6個字節。如果你要傳輸的文本包含大量英文字符,用UTF-8編碼就能節省空間。

  UTF-8有個額外的好處,就是ASCII編碼實際上可以被看成是UTF-8的編碼的一部分,所以,大量只支持ASCII編碼的歷史遺留軟件可以在UTF-8編碼下繼續工作。

字符集與字符編碼:

  1、字符集:

    字符集只是一個規則集合的名字,字符集=字庫表、編碼字符集、字符編碼

  2、字庫表:

    字庫表是一個相當於所有可讀或者可顯示字符的數據庫,字庫表決定了整個字符集能夠展現表示的所有字符的范圍。

  3、編碼字符集:(簡稱字符集,如Unicode、ASCII)

    編碼字符集,用一個編碼值code point來表示一個字符(即該字符在字庫表中的位置),這個值稱為字符對應於編碼字符集的序號。

  4、字符編碼:

    字符編碼,是編碼字符集和實際存儲數值之間的轉換關系。字符,是根據字符編碼方案轉換為一個二進制數值存儲在計算機中的。

    所以,字符編碼是定義在字符集上的映射字符。(字符:計算機中的實際存儲值)

 

  注意:編碼字符集Unicode,有UTF-8、UTF-16、UTF-32等多種字符編碼。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM