utf-8是一種國際化標準的文字編碼,我們已知windows系統程式已經將最初的utf-8轉向unicode,而gbk的存在是為了中國國情而創造的,不過gbk也將伴隨著中文字元的一直流傳下去。
gbk和utf-8文字編碼的特點:
gbk的文字編碼是雙位元組來表示的,即不論中、英文本元均使用雙位元組來表示,只不過為區分中文,將其最高位都定成1。
至於utf-8編碼則是用以解決國際上字元的一種多位元組編碼,它對英文使用8位(即乙個位元組),中文使用24位(三個位元組)來編碼。對於英文本元較多的論壇則用utf-8節省空間。
gbk和utf-8文字編碼的區別:
gbk包含全部中文字元;
utf-8則包含全世界所有國家需要用到的字元。
gbk是在國家標準gb2312基礎上擴容後相容gb2312的標準;(好像還不是國家標準)
utf-8編碼的文字可以在各國各種支援utf8字符集的瀏覽器上顯示。
所以,對於英文比較多的論壇 ,使用gbk則每個字元占用2個位元組,而使用utf-8英文卻只佔乙個位元組。
注意:
utf-8版本雖然具有良好的國際相容性,但中文需要比gbk/big5版本多占用50%的資料庫儲存空間,因此並非推薦使用,僅供對國際相容性有特殊要求的使用者使用。
總結:
gbk就是在儲存你的帖子的時候,乙個漢字占用兩個位元組。外國人看會出現亂碼,此為我中華為自己漢字編碼而形成之解決方案。
utf8就是在儲存你的帖子的時候,乙個漢字占用3個位元組。但是外國人看的話不會亂碼,此為西人為了解決多位元組字元而形成之解決方案。
ascii(iso-8859-1)是鼻祖,最簡單的方式,位元組高位為0。
gb2312、gbk、gb18030,這幾個是中文編碼方式,並向下相容。gb2312包含7000多個漢字和字元,gbk包含21000多個,gb18030更厲害,到了27000多個。他們都是用2個位元組來表示乙個漢字。跟ascii是怎麼區分的呢?如果高位元組的高位為1(也就是高位元組大於127),就表示是漢字,低位元組並無明顯特徵。
unicode是統一編碼,它建立了乙個全世界統一的碼表。世界上的所有文字,在這張碼表中都是唯一的。
utf-8是unicode的一種儲存、傳輸方式。它將整個unicode碼表分為3部分。
0000 - 007f 這部分是最初的ascii部分,按原始的儲存方式,即0******x。
0080 - 07ff 這部分儲存為110***xx 10******。
0800 - ffff 這部分儲存為1110***x 10****** 10******。
因此,乙個漢字究竟被儲存為什麼,就需要:先查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檔案怎麼區分呢?我也不知道。唯一能想到的辦法就是:先用一種試,如果出現亂碼,就用另一種再試。
簡言而知,gbk編碼方式的編碼是以中國國情而創造的,在國際上的相容性不好,這也是為什麼大多數的網頁是使用utf-8編碼而不是gbk。
UTF 8和GBK的區別
utf 8和gbk的區別 2009年06月09日 星期二 下午 02 00 gbk是國家標準gb2312基礎上擴容後相容gb2312的標準。gbk的文字編碼是用雙位元組來表示的,即不論中 英文本元均使用雙位元組來表示,為了區分中文,將其最高位都設定成1。gbk包含全部中文字元,是國家編碼,通用性比u...
GBK和UTF8的區別
gbk和utf8的區別 gbk編碼 是指中國的中文字元,其它它包含了簡體中文與正體中文本元,另外還有一種字元 gb2312 這種字元僅能儲存簡體中文本元。utf 8編碼 它是一種全國家通過的一種編碼,如果你的 涉及到多個國家的語言,那麼建議你選擇utf 8編碼。gbk和utf8有什麼區別?utf8編...
GBK和UTF 8的區別
我們這裡將以最簡單最容易理解的方式來描述gbk和utf8的區別,以及它們分別是什麼。gbk編碼 是指中國的中文字元,其它它包含了簡體中文與正體中文本元,另外還有一種字元 gb2312 這種字元僅能儲存簡體中文本元。utf8編碼格式很強大,支援所有國家的語言,正是因為它的強大,才會導致它占用的空間大小...