一、介紹字符編碼、內碼,順帶介紹漢字編碼
字符必須編碼后才能被計算機處理。計算機使用的缺省編碼方式就是計算機的內碼。早
期的計算機使用7位的ASCII編碼,為了處理漢字,程序員設計了用于簡體中文的GB2312
和用于繁體中文的big5。
GB2312(1980年)一共收錄了7445個字符,包括6763個漢字和682個其它符號。漢字區的內
碼范圍高字節從B0-F7,低字節從A1-FE,占用的碼位是72*94=6768。其中有5個空位是
D7FA-D7FE。
GB2312支持的漢字太少。1995年的漢字擴展規范GBK1.0收錄了21886個符號,它分為漢字
區和圖形符號區。漢字區包括21003個字符。2000年的GB18030是取代GBK1.0的正式國家
標準。該標準收錄了27484個漢字,同時還收錄了藏文、蒙文、維吾爾文等主要的少數民
族文字。現在的PC平臺必須支持GB18030,對嵌入式產品暫不作要求。所以手機、MP3一
般只支持GB2312。
從ASCII、GB2312、GBK到GB18030,這些編碼方法是向下兼容的,即同一個字符在這些方
案中總是有相同的編碼,后面的標準支持更多的字符。在這些編碼中,英文和中文可以
統一地處理。區分中文編碼的方法是高字節的最高位不為0。按照程序員的稱呼,
GB2312、GBK到GB18030都屬于雙字節字符集 (DBCS)。
有的中文Windows的缺省內碼還是GBK,可以通過GB18030升級包升級到GB18030。不過
GB18030相對GBK增加的字符,普通人是很難用到的,通常我們還是用GBK指代中文
Windows內碼。
這里還有一些細節:
GB2312的原文還是區位碼,從區位碼到內碼,需要在高字節和低字節上分別加上A0。
在DBCS中,GB內碼的存儲格式始終是big endian,即高位在前。
GB2312的兩個字節的最高位都是1。但符合這個條件的碼位只有128*128=16384個。所以
GBK和GB18030的低字節最高位都可能不是1。不過這不影響DBCS字符流的解析:在讀取
DBCS字符流時,只要遇到高位為1的字節,就可以將下兩個字節作為一個雙字節編碼,而
不用管低字節的高位是什么。
二、關于編碼
所謂編碼,是以固定的順序排列字符,并以此做為記錄、存貯、傳遞、交換的統一內部
特征,這個字符排列順序被稱為“編碼”。和中文字庫有關的常見編碼有:大陸GB碼、
GBK碼、港臺BIG-5碼等。下面簡要介紹一下。
GB碼
全稱是GB2312-80《信息交換用漢字編碼字符集 基本集》,1980年發布,是中文信息處
理的國家標準,在大陸及海外使用簡體中文的地區(如新加坡等)是強制使用的唯一中
文編碼。P-Windows3.2和蘋果OS就是以GB2312為基本漢字編碼, Windows 95/98則以GBK
為基本漢字編碼、但兼容支持GB2312。
GB碼共收錄6763個簡體漢字、682個符號,其中漢字部分:一級字3755,以拼音排序,二
級字3008,以偏旁排序。該標準的制定和應用為規范、推動中文信息化進程起了很大作
用。
1990年又制定了繁體字的編碼標準GB12345-90《信息交換用漢字編碼字符集 第一輔助
集》,目的在于規范必須使用繁體字的各種場合,以及古籍整理等。該標準共收錄6866
個漢字(比GB2312多103個字,其它廠商的字庫大多不包括這些字),純繁體的字大概有
2200余個。
Unicode編碼(Universal Multiple Octet Coded Character Set)
國際標準組織于1984年4月成立ISO/IEC JTC1/SC2/WG2工作組,針對各國文字、符號進行
統一性編碼。1991年美國跨國公司成立Unicode Consortium,并于1991年10月與WG2達成
協議,采用同一編碼字集。目前Unicode是采用16位編碼體系,其字符集內容與ISO10646
的BMP(Basic Multilingual Plane)相同。Unicode于1992年6月通過DIS(Draf
International Standard),目前版本V2.0于1996公布,內容包含符號6811個,漢字
20902個,韓文拼音11172個,造字區6400個,保留20249個,共計65534個。
GBK編碼(Chinese Internal Code Specification)
GBK編碼是中國大陸制訂的、等同于UCS的新的中文編碼擴展國家標準。GBK工作小組于
1995年10月,同年12月完成GBK規范。該編碼標準兼容GB2312,共收錄漢字21003個、符
號883個,并提供1894個造字碼位,簡、繁體字融于一庫。
Windows95/98簡體中文版的字庫表層編碼就采用的是GBK,通過GBK與UCS之間一一對應的
碼表與底層字庫聯系。
BIG5編碼
是目前臺灣、香港地區普遍使用的一種繁體漢字的編碼標準,包括440個符號,一級漢字
5401個、二級漢字7652個,共計13060個漢字。
方正748編碼
所謂748編碼,是指方正系統在長期應用過程中實施、制定的簡、繁體字庫編碼方式,簡
體兼容GB2312且有所擴展,共7156字;繁體兼容GB12345并擴展全部BIG-5漢字,計14943
字。此外,方正748編碼還含有豐富的符號庫。748編碼僅用于方正軟件和系統。
本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/coffeemay/archive/2006/04/17/666213.aspx