一、GBK誕生的因原
我們知道,隨著信息化技術(shù)的發(fā)展,為了使我國漢字的信息化處理與通信,我國在1980年首次發(fā)布了第一個(gè)漢字編碼字符集的國家標(biāo)準(zhǔn),即GB 2312-1980《信息交換用漢字編碼字符集 基本集》。之所以稱為基本集,是因?yàn)樵摌?biāo)準(zhǔn)僅僅收錄的是我們?nèi)粘W顬槌S玫?/span>6763個(gè)漢字。當(dāng)初的思路是以后陸續(xù)發(fā)布其漢字編碼字符集的輔助集的標(biāo)準(zhǔn),來逐步擴(kuò)充其它漢字,包括不同應(yīng)用場景的漢字(如繁體字、地名用字以及在古籍整理、古典文獻(xiàn)研究方面的應(yīng)用等),以適應(yīng)我國更多漢字的信息化編碼。在1995年前,我國相繼發(fā)布有5個(gè)輔助集的標(biāo)準(zhǔn)(注:我國一共發(fā)布有7個(gè)輔助集的標(biāo)準(zhǔn))。然而,此種情況又帶來了一些問題,如字符編碼位置安排的問題;多個(gè)標(biāo)準(zhǔn)給使用者帶來使用不便的問題等。這就是早期我國漢字編碼字符集的一個(gè)現(xiàn)狀,即因原一。
欲具體了解上述我國漢字編碼字符集標(biāo)準(zhǔn)介紹的請進(jìn)入:GB 2312(基本集);輔助集
其因原二是,在上世紀(jì)九十年代初,美國一些企業(yè)聯(lián)合發(fā)布了一種字符集編碼標(biāo)準(zhǔn),被稱為“Unicode”,被ISO接收后發(fā)布了稱為“通用多八位編碼字符集(UCS)”(標(biāo)準(zhǔn)編號為ISO/EEC 10646)。其中。Unicode/UCS收錄了大量中日韓(CJK)所使用的漢字,稱為CJK統(tǒng)一漢字。
欲具體了解Unicode/UCS標(biāo)準(zhǔn)介紹的請進(jìn)入:UCS;Unicode
其因原三是,微軟曾發(fā)布的一個(gè)字符編碼標(biāo)準(zhǔn)叫CP 936字碼表(Code Page 936),其標(biāo)準(zhǔn)內(nèi)容同GB 2312-1980,為了收錄Unicode/UCS中的CJK統(tǒng)一漢字,又發(fā)布了CP 936字碼表擴(kuò)展,使得微軟的操作系統(tǒng)在我國得到了廣泛的應(yīng)用。
因此,我國亟待需要一個(gè)統(tǒng)一的漢字字符集編碼標(biāo)準(zhǔn),能同時(shí)兼容并支持GB 3212-1980(應(yīng)包括輔助集)和Unicode/UCS,以集中收納更多現(xiàn)有漢字字符集。
二、GBK的發(fā)布與廢止
鑒于上述因原,我國在1995年12月15日,參照微軟公司的CP 936擴(kuò)展,結(jié)合我國漢字的當(dāng)時(shí)情況(各種字典/辭源的簡化字、繁體字、生僻字等),發(fā)布了《漢字內(nèi)碼擴(kuò)展規(guī)范(GBK)》(1.0版),簡稱GBK,意為國標(biāo)(GB 2312)漢字編碼字符集的擴(kuò)充(K是“擴(kuò)充”的漢語拼音第一個(gè)字母)。GBK 向下與 GB 2312 編碼兼容,向上支持 ISO 10646.1:1993國際標(biāo)準(zhǔn)(我國等同采用(IDT)所發(fā)布的標(biāo)準(zhǔn)為GB 13000.1-1993),是前者向后者過渡過程中的一個(gè)承上啟下的產(chǎn)物,GBK大大擴(kuò)充了GB 2312字匯的漢字編碼字符集。
漢字內(nèi)碼擴(kuò)展規(guī)范(Chinese Internal Code Extension Specification),當(dāng)時(shí)并沒有以國家標(biāo)準(zhǔn)(GB)發(fā)布,而是以部門文件的形式發(fā)布,即由當(dāng)時(shí)的電子工業(yè)部和國家技術(shù)監(jiān)督局聯(lián)合以“技監(jiān)標(biāo)函[1995] 229號”文件的形式發(fā)布的,屬于技術(shù)規(guī)范指導(dǎo)性文件。GBK雖然是一個(gè)技術(shù)指導(dǎo)性文件,但其地位成為事實(shí)上的一個(gè)國家標(biāo)準(zhǔn),因?yàn)樵诋?dāng)時(shí)它是我國字匯最多的一個(gè)漢字字符集,且向上支持國際標(biāo)準(zhǔn)(Unicode/UCS)、向下兼容我國早期標(biāo)準(zhǔn)(基本集及輔助集)。
當(dāng)時(shí)GBK之所以沒有以國家標(biāo)準(zhǔn)頒布,是因?yàn)?/span>GBK所規(guī)范的內(nèi)容并不十分成熟,包括編碼體系的設(shè)計(jì)、碼位的安排、兼容性的安排、漢字的來源等等。只有待這些技術(shù)問題相對成熟后,再發(fā)布成我國的一個(gè)國家標(biāo)準(zhǔn)。于是,到了2000年,我國就發(fā)布了國家標(biāo)準(zhǔn)GB 18030-2000《信息技術(shù) 信息交換用漢字編碼字符集 基本集的擴(kuò)充》,它代替了《漢字內(nèi)碼擴(kuò)展規(guī)范(GBK,1.0版)》(技監(jiān)標(biāo)函[1995] 229號),此時(shí),GBK(1.0版)完成了過渡性規(guī)范的使命。
欲詳細(xì)了解GB 18030標(biāo)準(zhǔn)介紹的請進(jìn)入。
三、GBK的內(nèi)容簡介
1、圖形字符
在GBK字符集中,一共有21 003個(gè)漢字和883個(gè)圖形符號,它與GB 2312國標(biāo)漢字字符集對應(yīng)的事實(shí)上的內(nèi)碼標(biāo)準(zhǔn)兼容。除了GB 2312中的全部漢字(GBK安排稱為GBK/2)和符號(稱為GBK/1)之外,還收錄了包括繁體字在內(nèi)的大量漢字(GBK/4與GBK/3)和符號(GBK/5),例如“計(jì)算機(jī)係”等繁體漢字和“冃冄冇鎔”等生僻的漢字,在字匯一級支持ISO/IEC 10646-1(即GB 13000.1)的全部20902個(gè)中日韓(CJK)漢字。GBK所收錄的字匯情況被匯總于下表3-1-1中;且GBK 對字形作了如下表3-1-2的規(guī)定。
表 3-1-1:GBK所收錄的字匯情況
表 3-1-2:GBK 對字形的規(guī)定
2、編碼方法
GBK字符集中的每一個(gè)字符都采用雙字節(jié)表示,總的編碼范圍為8140~FEFE,首字節(jié)在81與FE之間,尾字節(jié)在40與FE之間(剔除xx7F一條線不安排字符),總計(jì)23940個(gè)碼位,共收入21886個(gè)漢字和圖形符號,未使用的區(qū)域作為用戶自定義區(qū)。GBK漢字在雙字節(jié)代碼空間中的碼位詳見下圖3-2。GBK的區(qū)位安排說明詳見下表3-2。
圖 3-2:GBK漢字在雙字節(jié)代碼空間中的碼位示意圖
表 3-2:GBK的區(qū)位安排說明
《漢字內(nèi)碼擴(kuò)展規(guī)范(GBK)》(1.0版)的發(fā)布,當(dāng)時(shí)的中文版的WIN95、WIN98、WINDOWS NT以及WINDOWS 2000、WINDOWS XP、WIN 7等都支持GBK編碼方案。成為了我國當(dāng)時(shí)應(yīng)用最廣的漢字字符集。
欲進(jìn)一步了解我國漢字編碼字符集介紹的請進(jìn)入。