GBK UTF8 GB2132

  GBK就是在保存你的帖子的時候,一個漢字佔用兩個字節,外國人看會出現亂碼,爲此我中華爲本身漢字編碼而造成之解決方案。
  UTF8就是在保存你的帖子的時候,一個漢字佔用3個字節。可是外國人看的話不會亂碼。爲此西人爲了解決多字節字符而造成之解決方案。
  ASCII(ISO-8859-1)是鼻祖,最簡單的方式,字節高位爲0
  GB23十二、GBK、GB18030,這幾個是中文編碼方式,並向下兼容。GB2312包含7000多個漢子和字符,GBK包含21000多個,GB18030更厲害,到了27000多個。他們都是用2個字節來表示一個漢字。跟ASCII是怎麼區分的呢?若是高字節的高位爲1(也就是高字節大於127),就表示是漢字,低字節並沒有明顯特徵。
  Unicode是統一編碼,它創建了一個全世界統一的碼錶。世界上的全部文字,在這張碼錶中都是惟一的。
  UTF-8是Unicode的一種存儲、傳輸方式。它將整個Unicode碼錶分爲3部分。
  0000 - 007F 這部分是最初的ascii部分,按原始的存儲方式,即0xxxxxxx。
  0080 - 07FF 這部分存儲爲110xxxxx 10xxxxxx
  0800 - FFFF 這部分存儲爲1110xxxx 10xxxxxx 10xxxxxx
  所以,一個漢字究竟被存儲爲何,就須要:先查unicode碼錶,而後根據在碼錶的位置進行計算。例如:「電」字,在碼錶中是3575,計算成utf8就是E794B5,而在GB2312的碼錶中爲B5E7
  UTF-8的好處:兼容ASCII,存儲英文文件都是單字節,文件小。固然,當以存中文爲主時就變成了3字節編碼了,比GB系列還大!如何標明一個文件是utf8格式呢?這個標記是可選的:EF BB BF。好比,用windows自 帶的記事本建立一個utf8格式的文件,就會加上這個標記。可是,若是用ultraedit建立utf8文件,並不會加上這個標記。這個標記有個術語,叫 作BOM(Byte Order Mark)。不帶BOM的utf8文件和GB2312文件怎麼區分呢?我也不知道。惟一能想到的辦法就是:先用一種試,若是出現亂碼,就用另外一種再試
  UTF-16是雙字節存儲,這就帶來一個問題,即高低字節的順序。兩個字節有兩種順序,它們也用BOM來標明。分爲大尾碼和小尾碼兩種。大尾碼的BOM是FEFF,小尾碼的BOM是FFFE
  GBK 的中文編碼是雙字節來表示的,英文編碼是用ASC||碼錶示的,既用單字節表示。但GBK編碼表中也有英文字符的雙字節表示形式,因此英文字母能夠有2種GBK表示方式。爲區分中文,將其最高位都定成1。英文單字節最高位都爲0。當用GBK解碼時,若高字節最高位爲0,則用ASC||碼錶解碼;若高字節最 高位爲1,則用GBK編碼表解碼
  至於UTF-8編碼則是用以解決國際上字符的一種多字節編。碼,它對英文使用8位(即一個字節),中文使用24位(三個字節)來編碼。對於英文字符較多的論壇則用UTF-8節省空間。
  GBK包含所有中文字符,UTF-8則包含全世界全部國家須要用到的字符。windows

GBK是在國家標準GB2312基礎上擴容後兼容GB2312的標準(好像還不是國家標準)瀏覽器

UTF-8編碼的文字能夠在各國各類支持UTF8字符集的瀏覽器上顯示。
好比,若是是UTF8編碼,則在外國人的英文IE上也能顯示中文,而無需他們下載IE的中文語言支持包。
編碼

因此,對於英文比較多的論壇 ,使用GBK則每一個字符佔用2個字節,而使用UTF-8英文卻只佔一個字節。
可是若是UTF8中出現中文那就是3個字節~~具體的本身權衡。code

轉自:http://blog.163.com/cmdbat@126/blog/static/17029212320135297400353/blog

相關文章
相關標籤/搜索