字元編碼GB2312 GBK UTF 8的區別

2021-08-02 17:12:05 字數 1802 閱讀 6355

utf8是國際編碼,它的通用性比較好,外國人也可以瀏覽論壇

gbk是國家編碼,通用性比utf8差,不過utf8占用的資料庫比gbk大~

gbk版本與utf-8版本功能是一樣的.只不過編碼方式不同。

gbk的文字編碼是雙位元組來表示的,即不論中、英文本元均使用雙位元組來表示,只不過為區分中文,將其最高位都定成1。

至於utf-8編碼則是用以解決國際上字元的一種多位元組編碼,它對英文使用8位(即乙個位元組),中文使用24位(三個位元組)來編碼。對於英文本元較多的**則用utf-8節省空間。

gbk包含全部中文字元;utf-8則包含全世界所有國家需要用到的字元。

簡單的說 utf-8包含了很多世界範圍內的語言編碼(相當於乙個大字型檔) 比如日文 韓文 都可以用。gbk和gb2312只是中文的,相當於包含的漢字個數的多少。為了方便還是用utf-8比較好。

區別網上有很多,自己查一下吧,編碼格式不一樣,支援的字元不同,簡單說一下原理 

字串都是unicode碼,包括英文,漢字...其他字元 

unicode可以被轉化為位元組(byte),如何轉換呢,就通過gbk、utf-8、gb2312等編碼方式。當把位元組轉換回字串的時候,也要用相應的編碼方式進行轉換。 

比如客戶端把unicode碼通過utf-8轉換為二進位製流(也就是位元組byte),而到了伺服器端用gbk編碼來把這個二進位製流轉換為字串(unicode)的時候,就會出現亂碼。必須也要用相應的編碼方式進行轉換。 

gbk(encode)                  gbk(decode) 

unicode---------------->byte------------------------------>unicode 

string                二進位製流                              string

通用轉換格式utf(universal transformation format) 

utf-8是unicode的一種變長字元編碼 

gbk: 漢字國標擴充套件碼,基本上採用了原來gb2312-80所有的漢字及碼位, 

並涵蓋了原unicode中所有的漢字20902 

gbk編碼是中國大陸制訂的、等同於ucs的新的中文編碼擴充套件國家標準 

gb 2312或gb 2312-80是乙個簡體中文字符集的中國國家標準 

gb 2312標準共收錄6763個漢字

區別很簡單,不同的字符集。

什麼叫字符集,其實就是一張對照表。"啊"字對應unicode編碼就是"554a",對應的gbk編碼是"b0a1". 

什麼是對照表呢,簡單舉個例子,就是班級的點名冊,"張三"對應10號。計算機不能儲存"張三",就儲存個"10",取出乙個10,按對照表一查,返回乙個"張三"。 

但是在全學校的點名冊裡,"張三"對應15號。不同的點名冊就是不同的字符集。 

現 在你把"10"存進去了,取出來後,按照班級點名冊取出了"張三",很正確,如果用了全學校的點名冊,返回給你個外國人,假設你不認識英文,你就覺得亂碼 了,其實沒亂,你可以把它返回成10,再用班級點名冊去對照,"張三"不就出來了。注意:如果全學校的點名冊裡沒有10對應的人,按照約定就返回給 你"????",這個時候才真的亂碼了,返回不了了。 

不同的點名冊,就是不同的字符集。gb2312是乙個點名冊,後來班裡又插班進來倆學生,gb2312加倆學生,老師說,點名冊不一樣了,換個名吧,叫gbk好了。 

中國有個學生叫"張三",在中國是"10"號,後來出國了,聯合國給他個號"20"號,乙個gbk,乙個utf8,但都是乙個人,對應不同的號而已。 

ps:utf-8是unicode的變種,從unicode編碼可以計算出乙個字對應的utf-8編碼。

GB2312編碼範圍

gb2312編碼範圍 a1a1 fefe,其中漢字編碼範圍 b0a1 f7fe。gb2312編碼是第乙個漢字編碼國家標準,由中國國家標準總局1980年發布,1981年5月1日開始使用。gb2312編碼共收錄漢字6763個,其中一級漢字3755個,二級漢字3008個。同時,gb2312編碼收錄了包括拉...

GB2312的編碼規則

gb2312標準共收錄6763個漢字,其中一級漢字3755個,二級漢字3008個 同時,gb2312收錄了包括拉丁字母 希臘字母 日文平假名及片假名字母 俄羅斯語西里爾字母在內的682個全形字符。gb2312的出現,基本滿足了漢字的計算機處理需要,它所收錄的漢字已經覆蓋99.75 的使用頻率。gb2...

字元編碼GB2312 GBK UTF 8的區別

utf8是國際編碼,它的通用性比較好,外國人也可以瀏覽論壇 gbk是國家編碼,通用性比utf8差,不過utf8占用的資料庫比gbk大 gbk版本與utf 8版本功能是一樣的 只不過編碼方式不同。gbk的文字編碼是雙位元組來表示的,即不論中 英文本元均使用雙位元組來表示,只不過為區分中文,將其最高位都...