找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2857|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

GB,GBK,GB18030,Unicode”漢字編碼知識

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:107189 發(fā)表于 2016-3-5 18:43 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
    最近常見有人對GB、GBK、GB18030、Unicode等編碼概念不清,再摻雜上Ext-A、Ext-B、Ext-C等,更混亂了。所以特別整理一些知識貼出來給大家:
1、GB、BIG5、GBK、GB18030
字符必須編碼后才能被計算機處理。計算機使用的缺省編碼方式就是計算機的內(nèi)碼。早期的計算機使用7位的ASCII編碼,為了處理漢字,程序員設(shè)計了用于簡體中文的GB2312和用于繁體中文的BIG5。
GB2312(1980年)一共收錄了7445個字符,包括6763個漢字和682個其它符號。漢字區(qū)的內(nèi)碼范圍高字節(jié)從B0-F7,低字節(jié)從A1-FE,占用的碼位是72*94=6768。其中有5個空位是D7FA-D7FE。
GB2312 支持的漢字太少。1995年的漢字?jǐn)U展規(guī)范GBK1.0收錄了21886個符號,它分為漢字區(qū)和圖形符號區(qū)。漢字區(qū)包括21003個字符。2000年的 GB18030是取代GBK1.0的正式國家標(biāo)準(zhǔn)。該標(biāo)準(zhǔn)收錄了27484個漢字,同時還收錄了藏文、蒙文、維吾爾文等主要的少數(shù)民族文字。
從ASCII、GB2312、 GBK到GB18030,這些編碼方法是向下兼容的,即同一個字符在這些方案中總是有相同的編碼,后面的標(biāo)準(zhǔn)支持更多的字符。在這些編碼中,英文和中文可以統(tǒng)一地處理。區(qū)分中文編碼的方法是高字節(jié)的最高位不為0。按照程序員的稱呼,GB2312、GBK到GB18030都屬于雙字節(jié)字符集 (DBCS)。
有的中文Windows的缺省內(nèi)碼還是GBK,可以通過GB18030升級包升級到GB18030。不過GB18030相對GBK增加的字符(就是Ext-A部分),普通人是很難用到的,通常我們還是用GBK指代中文Windows內(nèi)碼。
2、Unicode、UCS和UTF
前面提到從ASCII、GB2312、GBK到GB18030的編碼方法是向下兼容的。而Unicode只與ASCII兼容(更準(zhǔn)確地說,是與ISO-8859-1兼容),與GB碼不兼容。例如“漢”字的Unicode編碼是6C49,而GB碼是BABA。
Unicode 也是一種字符編碼方法,不過它是由國際組織設(shè)計,可以容納全世界所有語言文字的編碼方案。Unicode的學(xué)名是"Universal Multiple-Octet Coded Character Set",簡稱為UCS。UCS可以看作是"Unicode Character Set"的縮寫。
根據(jù)維基百科全書(http://zh.wikipedia.org/wiki/)的記載:歷史上存在兩個試圖獨立設(shè)計Unicode的組織,即國際標(biāo)準(zhǔn)化組織(ISO)和一個軟件制造商的協(xié)會(unicode.org)。ISO開發(fā)了ISO 10646項目,Unicode協(xié)會開發(fā)了Unicode項目。
在1991年前后,雙方都認(rèn)識到世界不需要兩個不兼容的字符集。于是它們開始合并雙方的工作成果,并為創(chuàng)立一個單一編碼表而協(xié)同工作。從Unicode2.0開始,Unicode項目采用了與ISO 10646-1相同的字庫和字碼。
目前兩個項目仍都存在,并獨立地公布各自的標(biāo)準(zhǔn)。Unicode協(xié)會現(xiàn)在的最新版本是2005年的Unicode 4.1.0。ISO的最新標(biāo)準(zhǔn)是10646-3:2003。
UCS規(guī)定了怎么用多個字節(jié)表示各種文字。怎樣傳輸這些編碼,是由UTF(UCS Transformation Format)規(guī)范規(guī)定的,常見的UTF規(guī)范包括UTF-8、UTF-7、UTF-16。
IETF 的RFC2781和RFC3629以RFC的一貫風(fēng)格,清晰、明快又不失嚴(yán)謹(jǐn)?shù)孛枋隽薝TF-16和UTF-8的編碼方法。IETF是 Internet Engineering Task Force的縮寫。IETF負(fù)責(zé)維護(hù)的RFC是Internet上一切規(guī)范的基礎(chǔ)。
     所以從漢字包含來看,簡單地可以說:
               GB2312ASCII常用漢字符號
               GBKGB2312不常用字(含BIG5繁體漢字)圖形符號
               GB18030GBKExt-A圖形符號
               UnicodeGB18030Ext-B……(如未發(fā)布的Ext-C及其它國家文字)
               注意:Unicode的漢字編碼與前三者不一樣
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表