字符編碼 GB2312 GBK UTF-8 區別

本文來自:javaeye網站

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

GBK是國家編碼,通用性比UTF8差,不過UTF8佔用的數據庫比GBK大~

 

提示:如果您的網站客戶羣體主要是面向國內用戶的,建議使用GBK版本,因爲它可以節省空間,及相對utf-8版本來講穩定一些。
對於DZ論壇來說,很多插件都只支持GBK的,如果需要裝較多插件的論壇還是用GBK比較好,而對裝較少插件且有特殊用戶羣的論壇用UTF8比較好。

 

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

 

 

GBK的文字編碼是雙字節來表示的,即不論中、英文字符均使用雙字節來表示,只不過爲區分中文,將其最高位都定成1。

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

GBK包含全部中文字符;UTF-8則包含全世界所有國家需要用到的字符。

GBK是在國家標準GB2312基礎上擴容後兼容GB2312的標準,UTF-8編碼的文字可以在各國各種支持UTF8字符集的瀏覽器上顯示。
比如,如果是UTF8編碼,則在外國人的英文IE上也能顯示中文,而無需他們下載IE的中文語言支持包。 所以,對於英文比較多的論壇 ,使用GBK則每個字符佔用2個字節,而使用UTF-8英文卻只佔一個字節。

 

 

簡單的說 UTF-8包含了很多世界範圍內的語言編碼(相當於一個大字庫) 比如日文 韓文 都可以用。GBKGB2312只是中文的,相當於包含的漢字個數的多少。爲了方便還是用UTF-8比較好。

 

 

區別網上有很多,自己查一下吧,編碼格式不一樣,支持的字符不同,簡單說一下原理
字符串都是unicode碼,包括英文,漢字...其他字符
unicode可以被轉化爲字節(byte),如何轉換呢,就通過gbkutf-8gb2312等編碼方式。當把字節轉換回字符串的時候,也要用相應的編碼方式進行轉換。
比如客戶端把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編碼。

發佈了54 篇原創文章 · 獲贊 4 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章