GBK 是又一個漢字編碼標(biāo)準(zhǔn),全稱《漢字內(nèi)碼擴(kuò)展規(guī)范》(GBK),這一版的 GBK 規(guī)范為 1.0 版。GB 即“國標(biāo)”,K 是“擴(kuò)展”的漢語拼音第一個字母。GBK 向下與 GB 2312編碼兼容,向上支持 ISO 10646.1 國際標(biāo)準(zhǔn),是前者向后者過渡過程中的一個承上啟下的標(biāo)準(zhǔn)。
ISO 10646 是國際標(biāo)準(zhǔn)化組織 ISO 公布的一個編碼標(biāo)準(zhǔn),即 Universal Multilpe-Octet Coded Character Set(簡稱 UCS),大陸譯為《通用多八位編碼字符集》,臺灣譯為《廣用多八位元編碼字元集》,它與 Unicode 組織的 Unicode 編碼完全兼容。ISO 10646.1 是該標(biāo)準(zhǔn)的第一部分《體系結(jié)構(gòu)與基本多文種平面》。我國 1993 年以 GB 13000.1 國家標(biāo)準(zhǔn)的形式予以認(rèn)可(即 GB 13000.1 等同于 ISO 10646.1)。
ISO 10646 是一個包括世界上各種語言的書面形式以及附加符號的編碼體系。其中的漢字部分稱為“CJK 統(tǒng)一漢字”(C 指中國,J 指日本,K 指朝鮮)。而其中的中國部分,包括了源自中國大陸的 GB 2312、GB 12345、《現(xiàn)代漢語通用字表》等法定標(biāo)準(zhǔn)的漢字和符號,以及源自臺灣的 CNS 11643 標(biāo)準(zhǔn)中第 1、2 字面(基本等同于 BIG-5 編碼)、第 14 字面的漢字和符號。
GBK內(nèi)碼和GBK碼的區(qū)別是什么?
GBK內(nèi)碼和GBK碼本質(zhì)上沒區(qū)別。從使用上來說,GB2312-80是80年代制定的漢字處理編碼國家標(biāo)準(zhǔn),定義了六千多個常用漢字和符號。在這個標(biāo)準(zhǔn)中,那些常用漢字和符號被按照符號、特常用漢字、次常用漢字的順序編排為94個區(qū),每區(qū)94位漢字(符號)。所謂的區(qū)位碼就是按照先區(qū)后位的方法對漢字進(jìn)行的數(shù)字編碼,以“亮”字為例,“亮”按照GB2312-80處于第33區(qū)的第33個字,它的區(qū)位碼就是3333,使用區(qū)位輸入法,用3333就可以輸入“亮”。這個3333也就是區(qū)位輸入法下“亮”字的外碼,若是使用拼音輸入法,那么亮字的外碼則是 liang 。 從這里就可以知道,所謂外碼就是輸入漢字時使用的編碼,跟特定輸入法對應(yīng)。而內(nèi)碼則是漢字在存儲時使用的編碼,GB2312-80標(biāo)準(zhǔn)廣泛應(yīng)用的時代還是CCDOS時代,比較典型的CCDOS就是UCDOS,CCDOS中漢字的存儲用編碼是,第一字節(jié)為漢字的區(qū)碼加160(0xA0),第二字節(jié)為位碼加160,所以“亮”字的內(nèi)碼,第一字節(jié)和第二字節(jié)都是 33+160(0xC1),因為它的區(qū)碼和位碼都是33,通常說的GB碼或者GB2312碼都是指這種編碼規(guī)則下的內(nèi)碼,與港臺地區(qū)經(jīng)常使用的BIG5碼相區(qū)別。因為GB2312-80定義的字符集太小,容納的漢字太少,所以后來又有了GBK,GBK將 GB2312-80定義為自己的子集,在GB2312基礎(chǔ)上定義了更多漢字。智能ABC就是定義在GB2312上的輸入法,使用智能ABC無法輸入朱镕基的“镕”字和“曌”字,而全拼定義在GBK上,使用全拼就可以輸入這兩個字。可以說,GB2312和GBK既是編碼標(biāo)準(zhǔn)又是內(nèi)碼存儲方案。
關(guān)鍵詞: 什么是GBK編碼 GBK內(nèi)碼和GBK碼的區(qū)別是什么 內(nèi)碼是什么 gbk編碼格式中文亂碼