GB2312 GBK與UTF 8的區別

2021-08-08 12:55:42 字數 2590 閱讀 8912

首先,我們要明白,gb2312、gbk和utf-8都是一種字元編碼,除此之外,還有好多字元編碼。只是對於我們中國人的**來說,用這三種編碼比較多。簡單的說一下,為什麼要用編碼,在計算機內,儲存文字資訊用asc ii碼,每乙個字元對應著唯一的ascii碼。最初計算機是由美國發明的,他們也用的是鍵盤和上面的字母,所以他們的字元ascii好解決。但是我們中國的就不同了,每個漢字要對應唯一的ascii碼。這樣,就出來了國家制定的字元編碼標準:gb2312、gbk等。其他國家,其他語言也有他們對應的編碼標準。 gb 就是國標的意思,gb2312和gbk主要用於漢字的編碼,而utf-8是全世界通用的。意思就是說,如果你的網頁主要面對使用漢語的中國人的話,使用 gb2312和gbk非常好,文字儲存體積要小,有一些優點。如果你的網頁要面向世界的話,你再用gb2312和gbk作為網頁編碼的話,有些電腦上的瀏覽器沒有這種編碼,你的網頁漢字內容就會變成無法識別的亂碼。

它們通常用在網頁的meta標籤內,例如:,表示這個頁面使用的是gbk編碼。這個資訊是給瀏覽器看的,瀏覽器會優先考慮使用從網頁頭部提取出來的編碼資訊對網頁進行解碼。當然,我們也可以強制瀏覽器使用某種編碼解釋網頁,這樣我們就看到了傳說中的亂碼。請看下圖ie瀏覽器:

網易首頁使用的是gbk編碼,我們可以看到現在是正常的。我們右擊頁面,選擇「編碼」->「其他」->「unicode(utf-8)」,意思就是強制瀏覽器使用utf-8的編碼方式解析頁面,我們可以看到奇蹟發生了:

網易頁面上所有的漢字都變成了亂碼。如果你的網頁使用了gbk編碼,卻被一台沒有gbk編碼的電腦訪問了,裡面所有的漢字都成了亂碼。如果你使用utf-8編碼,在沒有漢字的電腦裡,仍然可以正常顯示,因為utf-8是通用的編碼,所有電腦都有。

所以,在編寫網頁時,盡量使用utf-8編碼。

gbk是國家標準gb2312基礎上擴容後相容gb2312的標準。gbk的文字編碼是用雙位元組來表示的,即不論中、英文本元均使用雙位元組來表示,為了區分中文,將其最高位都設定成1。gbk包含全部中文字元,是國家編碼,通用性比utf8差,不過utf8占用的資料庫比gbd大。

gbk、gb2312等與utf8之間都必須通過unicode編碼才能相互轉換:  

gbk、gb2312--unicode--utf8

utf8--unicode--gbk、gb2312

對於乙個**、論壇來說,如果英文本元較多,則建議使用utf-8節省空間。不過現在很多論壇的外掛程式一般只支援gbk。

1、gb2312是gbk的子集,gbk是gb18030的子集; 

2、gbk是包括中日韓字元的大字符集合;

4為了避免所有亂碼問題,應該採用utf-8,將來要支援國際化也非常方便;

5、utf-8可以看作是大字符集,它包含了大部分文字的編碼。

使用utf-8的乙個好處是其他地區的使用者(如香港台灣)無需安裝簡體中文支援就能正常**你的文字而不會出現亂碼。

1、gb2312是簡體中文的碼; 

2、gbk支援簡體中文及正體中文;

3、big5支援正體中文;

4、utf-8支援幾乎所有字元;

中國大陸最常用的就是gbk18030編碼,除此之外還有gbk,gb2312,這幾個編碼的關係是這樣的。

1、最早制定的漢字編碼是gb2312,包括6763個漢字和682個其它符號; 

2、95年重新修訂了編碼,命名gbk1.0,共收錄了21886個符號;

3、之後又推出了gbk18030編碼,共收錄了27484個漢字,同時還收錄了藏文、蒙文、維吾爾文等主要的少數民族文字;

3.1、現在windows平台必需要支援gbk18030編碼。

按照gbk18030、gbk、gb2312的順序,3種編碼是向下相容,同乙個漢字在三個編碼方案中是相同的編碼。

gb2312編碼大約包含6000多漢字(不包括特殊字元),編碼範圍為第一位b0-f7,第二位編碼範圍為a1-fe(第一位為cf時,第二位為a1-d3),計算一下漢字個數為6762個漢字。當然還有其他的字元。包括控制鍵和其他字元大約7573個字元編碼

gbk編碼是對g b2312編碼的擴充,容納的漢字更多,但僅僅是擴充,沒有質的變化。保留了所有g b2312編碼,在此基礎上進行編碼範圍的擴充.容納(包含特殊字元)共22014個字元編碼.

gb18030編碼是在gbk編碼基礎上的擴充,因為漢字更多,僅僅使用兩位編碼已經不能 容納要求的漢字,所以採用了2\4位混和的辦法,可以支援更多的漢字編碼。並且保留了原有的gbk 2位元組編碼相容g b2312和gbk編碼的檔案。大概容納55657個編碼(包含特殊字元) unicode編碼(也就是utf編碼):俗稱萬國碼,致力於使用統一的編碼準則表達各國的文字。為表達更多的文字,utf-8採用2/3混編的方式。目前容納的漢字範圍小於gbk編碼。並且以 3位元組的方式處理中文,帶來了相容性的問題,原有的gbk,g b2312,gb18030編碼檔案都不能正常的處理,還有很長的路要走。

GB2312 GBK與UTF 8的區別

首先,我們要明白,gb2312 gbk 和utf 8 都是一種字元編碼,除此之外,還有好多字元編碼。只是對於我們中國人的 來說,用這三種編碼 比較多。簡單的說一下,為什麼要用編碼,在計算機內,儲存文字資訊用 asc ii 碼,每乙個字元對應著唯一的 ascii 碼。最初計算機是由美國發明的,他們也用...

UTF 8與GB2312之間的互換

winapi的兩個函式 widechartomultibyte multibytetowidechar。int multibytetowidechar uint codepage,code page dword dwflags,character type options lpcstr lpmult...

gb2312和UTF 8的區別

gb2312編碼大約包含6000多漢字 不包括特殊字元 編碼範圍為第一位b0 f7,第二位編碼範圍為a1 fe 第一位為cf時,第二位為a1 d3 計算一下漢字個數為6762個漢字。當然還有其他的字元。包括控制鍵和其他字元大約7573個字元編碼 gbk編碼是對gb2312編碼的擴充,容納的漢字更多,...