附上常用編碼方式的在線查看和相互轉換工具鏈接
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
一區為單字節編碼,
編碼格式為: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倍。