GB18030和UTF-8有啥區別

來源:互聯網
上載者:User
GB18030和UTF-8有啥區別

回複內容:

GB18030和UTF-8有啥區別

GB18030 是中國的標準,國標(GB),就是如何表示一個字元。Unicode只給出了一個字元的編號,並沒有規定如何表示(或者說儲存),UTF-8規定了如何表示。所以說,GB18030 unicode+utf-8 是不同的字元表示方式,一個是中國制定的標準,一個是國際上的組織制定的標準。

電腦被發明的時候,人們認為不會像現在這麼流行,所以包括控制字元在內人們只定義了包括控制字元在內的128種符號,這就是 ASCII

後來電腦流行到非英語國家,那麼他們有自己的語言需要電腦顯示。由於ASCII符號只有128個,而電腦一個位元組有8位,所以還有128個冗餘,於是他們用剩餘的128個冗餘表示他們自己國家的文字。不同的國家把這128個(其實是95個)定義成不同的字元,分別叫做ISO8859-1(Latin-1),ISO8859-2(Latin-2).....ISO8859-16(Latin-10)。額,中間有一部分不叫 Latin(好坑人呀)

但是在東亞,就說中國吧,128個顯然表示不了所有的漢字。所以就只能用兩個位元組表示一個漢字。於是規定,原始的 ASCII 還是用一個位元組表示,使用連續兩個位元組(這兩個位元組值都大於128)表示一個漢字。一共可以表示128×128=16384個漢字(實際沒有那麼多),叫做 GB2312。後來人們發現自己太傻,其實第一個位元組大於128的話,我們用連續兩個位元組表示一個漢字也不會出現歧義,所以規定,如果當前位元組小於128那麼就是標準的 ASCII,如果當前位元組大於128就用當前位元組和後面那個位元組表示一個漢字,所以可以表示(128×256=32768)個漢字,然後補充了一部分漢字,叫做 GBK。在此基礎上又增加了一部分漢字,這個版本叫做 GB18030。(東亞標準裡還有BIG5和CJK的故事)。

不同的國家有不同的標準,所以當大家交流的時候就不方便了。所以出現了兩個組織(忘記具體叫什麼了),開始著手統一全部的字元集(後來其中一個組織覺得另一個組織做就好了,主動退出了),叫做 Unicode。

但是 Unicode 只規定了一個字元的編號,並沒有規定具體怎麼表示。比如 A 編號65,具體表示的時候可以用一個位元組 0x41 表示,可以用兩個位元組表示 0x00 0x41,或者用四個位元組表示 0x00 0x00 0x00 0x41,而且多個位元組表示的話還有誰在前的問題。所以在 unicode 表示上出現了不同的標準。UTF-8 就是一種表示的標準(終於說到UTF-8了),不過具體怎麼表示就有點兒複雜了,是一種變長編碼,有些字元用一個位元組(相容ASCII,這就是為什麼UTF-8比較流行)有些用兩個有些三個。。。隨便百度了一個表示方式,就是把一個如何把一個數字轉成幾個位元組表示。

擴充:還有兩種標準 UTF-16,UTF-32,UTF-16統一個用兩個位元組或是四個位元組表示一個字元(java,javascript裡就是這種編碼,這其中還有USC定長編碼的故事),UTF-32統一用4個位元組,所以都不相容ASCII。既然是多位元組,就涉及位元組順序的問題。。。。

非常同意 @zonxin 不過我想說:

珍愛生命,遠離GBK/GB2312 (當然有點偏激, 但爺就這麼說了!)

當然utf8問題,微軟又整出個utf8 with bom 和 utf8 without bom,馬 丹啊當個程式員,容易嗎!

前者是中文字元集,後者是萬國碼,完全不同的字元集編碼!筆者建議好好瞭解一下字元編碼,可以參考一下這篇文章,字元編碼詳解

前者是字元集,相當於“都說些啥”,後者是編碼方式,相當於“該咋說”。

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.