常見的字符編碼方式-文字編碼和Unicode標准


附上常用編碼方式的在線查看和相互轉換工具鏈接   http://www.jb51.net/tools/zhuanhuan.htm
 
 
ASCII字符集 是美國制訂的標准,針對北美用戶開發。它使用7個二進制位編碼,可以表示128個字符。局限性:字符空間有限。  各國針對本國文字設計編碼集,如簡體中文的GB系列編碼。
 
為了一勞永逸地解決各國文字間的統一,業界許多大公司和組織聯合提出了一個標准,這就是Unicode。 它對字符集中的每個字符用兩個字節長的ID號進行編碼,從而規定出一個可容納多達65536個字符的編碼空間,並且將現今國際上各國編碼中的常用字盡數收入罄中。
但是,Unicode在推廣過程中卻遭到了首先是歐美用戶的反對。他們反對的理由非常簡單:歐美用戶原本使用的編碼都是單字節長的,雙字節的Unicode處理引擎無法處理原本的單字節數據;而如果要把現有的單字節文本全部轉換成Unicode,工作量就太大了。
 
於是在各方磋商之下,一個Unicode的變種版本產生了,這就是UTF-8。UTF-8是一個多字節的編碼體系,它的編碼規則如下:
 
1、UTF-8編碼分為四個區:
    一區為單字節編碼,
      編碼格式為:0xxxxxxx;
      對應Unicode:0x0000 - 0x007f
    二區為雙字節編碼,
      編碼格式為:110xxxxx 10xxxxxx;
      對應Unicode:0x0080 - 0x07ff
    三區為三字節編碼,
      編碼格式為:1110xxxx 10xxxxxxx 10xxxxxx
      對應Unicode:0x0800 - 0xffff
    四區為四字節編碼,
      編碼格式為:11110xxx 10xxxxxxx 10xxxxxx 10xxxxxx
      對應Unicode:0x00010000 - 0x0001ffff
    五區為五字節編碼,
      編碼格式為:111110xx 10xxxxxxx 10xxxxxxx 10xxxxxxx 10xxxxxxx
      對應Unicode:0x00200000 - 0x03ffffff
    六區為六字節編碼,
      編碼格式為:111110x 10xxxxxxx 10xxxxxxx 10xxxxxxx 10xxxxxxx 10xxxxxxx
      對應Unicode:0x04000000 - 0x7fffffff
 
按照UTF-8編碼規則我們不難發現,其一區的128個編碼實際上就是ASCII編碼。所以UTF-8的處理引擎可以直接處理ASCII文本。但是,UTF-8對ASCII編碼的兼容是以犧牲其它編碼為代價的。比如,原本中、日、韓三國文字基本上都是雙字節編碼,但它們在Unicode編碼中的位置對應到UTF-8中的三區,每一個字符編碼要三個字節長。換句話說,如果我們把所有現有的中、日、韓三國編碼的非ASCII字符文本數據轉換成UTF-8編碼,則其大小都會變成原來的1.5倍。

 


免責聲明!

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



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