大五码


大五码 (正體)

Free Web Hosting with Website Builder

目录

Big5,又称为大五码五大码,是使用繁体中文(正体中文)社群中最常用的电脑汉字字符集标准,共收录13,060个汉字[1]

中文码分为中文内码及中文交换码两类,Big5属中文内码,知名的中文交换码有CCCIICNS11643

Big5虽普及于台湾香港澳门等繁体中文通行区,但长期以来并非当地的国家标准,而只是业界标准(de facto standard)。倚天中文系统Windows等主要系统的字符集都是以Big5为基准,但厂商又各自增删,衍生成多种不同版本。

2003年,Big5被收录到台湾官方标准的附录当中,取得了较正式的地位。这个最新版本被称为Big5-2003。

历史及名称

“五大码”(Big5)是在1984年由中华民国财团法人信息工业策进会为五大中文套装软件(宏碁、神通、佳佳、零壹、大众)所设计的中文内码,所以就称为Big5中文内码,虽然五大套装软件并没有成功,但Big5码却深远地影响正体中文电脑内码,直至今日[2]。“五大码”的英文名称“Big5”后来被人按英文字序译回中文,以致现在有“五大码”和“大五码”两个中文名称。

Big5码的产生,是因为当时台湾不同厂商各自推出不同的编码,如IBM 5550、王安码等,彼此不能兼容;另一方面,台湾当时尚未推出官方的汉字编码,而中国大陆所推行的GB 2312编码,亦未有收录繁体字。在这样的时空背景下,为了使台湾早日进入信息时代,所采行的一个计划;同时,这个计划对于以台湾为核心的亚洲繁体汉字圈也产生了久远的影响。

Big5产生前,研发中文电脑朱邦复认为这套内码收字过少,在资策会内码会议提出采用他的五万多字的字库。工程师已肯定其技术可行,但在1983年朱邦复被诬为共产党,资策会因此放弃其研究成果。[3]

在Big5码诞生后,大部分台湾的电脑软件都使用了Big5码,加上后来倚天中文系统的高度普及,使后来的微软 Windows 3.x等亦予以采用。虽然后来台湾还有各种想要取代Big5码,像是倚天中文系统所推行的倚天码、中华民国中文电脑公会所推动的公会码等,但是由于Big5字码已沿用多年,因此在习惯不易改变的情况下,始终无法成为主流字码。而台湾以后发展的国家标准中文交换码(CNS 11643)由于先天所限,必须使用3字节来表示一个汉字,与现行英语软件欠缺相容,所以普及率远远不及Big5码。

1990年代初期,当中国大陆电子邮件和转码软件还未普遍之时,在深圳的港商和台商公司亦曾经使用Big5系统,以方便与总部的文件交流、以及避免为大陆的办公室再写一套不同内码的系统。在使用简体中文社群,最常用的是GB 2312GBK及其后续的国标码GB 18030)。

现在,除了台湾外,其他使用繁体汉字的地区,如香港澳门,及使用繁体汉字的海外华人,都普遍使用Big5码。这已经成为繁体中文显示的标准格式。

字节结构

Big5码是一套双字节字符集,使用了双八码储存方法,以两个字节来安放一个字。第一个字节称为“高位字节”,第二个字节称为“低位字节”。

“高位字节”使用了0x81-0xFE,“低位字节”使用了0x40-0x7E,及0xA1-0xFE。在Big5的分区中:

0x8140-0xA0FE 保留给使用者自定义字符(造字区)
0xA140-0xA3BF 标点符号、希腊字母及特殊符号,
包括在0xA259-0xA261,安放了双音节度量衡单位用字:兙兛兞兝兡兣嗧瓩糎。
0xA3C0-0xA3FE 保留。此区没有开放作造字区用。
0xA440-0xC67E 常用汉字,先按笔划再按部首排序。
0xC6A1-0xC8FE 保留给使用者自定义字符(造字区)
0xC940-0xF9D5 次常用汉字,亦是先按笔划再按部首排序。
0xF9D6-0xFEFE 保留给使用者自定义字符(造字区)

值得留意的是,Big5重复地收录了两个相同的字:“兀、兀”(0xA461[U+5140]及0xC94A[U+FA0C])、“嗀、嗀”(0xDCD1[U+55C0]及0xDDFC[U+FA0D])。

冲码问题

因为低位元字符中包含了编程语言、shell、script 中,字串或命令常会用到的特殊字符,例如0x5C “\”、0x7C “|”等。“\” 在许多用途的字串中是当作转义符号又称为跳脱字符,例如 \n(换行)、\r(归位)、\t(tab)、\\(\本身符号)、\"(引号)等等。而 “|” 在UNIX操作系统中大多当作命令管线的使用,如 "ls -la | more" 等等。如果在字串中有这些特殊的转义字符,会被程式直译器解释为特殊用途。但是因为是中文的原因,故无法正确解释为上面所述的行为,因此程式可能会忽略此转义符号或是中断执行。若此,就违反了使用者本来要当成中文字符一部份使用的本意。[4]

在常用字如“功”(0xA55C)、“許”(0xB35C)、“盖”(0xBB5C)、“育”(0xA87C)中时常出现,造成了许多软件无法正确处理以Big5编码的字串或文件。这个问题被戏谑性地人名化,称为“許功蓋”或“許蓋功”(这三个字都有这种问题)。

一般的解决方法,是额外增加“\”的字符,因为“\\”会被解释为“\”,所以“成功\因素”这个字串就能无误地被程式当作“成功因素”的字串来处理。但是额外的困扰是,有些输出功能并不会把“\”当作特殊字符看待,所以有些程式或网页就会错误地常常出现在“许功盖”这些字后面多了“\”。[4]

私人造字区

倚天中文系统,以及后来的Windows 3.19598中,定义了四个私人造字区范围:0xFA40-0xFEFE、0x8E40-0xA0FE、0x8140-0x8DFE、0xC6A1-0xC8FE。

私人造字区的原意,是供使用者加入本来在编码表中缺少的字符,但当每个使用者都在不同的地方加上不同的字符后,当交换资料时,对方便难以知道某一个编码究竟想表达什么字。

影响

自中文电脑流行后,由于很多日常用字被视为异体字而未收录。很多人,甚至电视台的字幕、报纸的用字习惯都被改变。

例如台湾教育部视“着”为“著”的异体字,故没有收录“着”字。康熙字典中的一些部首用字(如“亠”、“疒”、“辵”、“癶”等)、常见的人名用字(如“堃”(前中华民国前行政院长游锡堃)、“煊”(中华民国监察院院长、前财政部长王建煊)、“栢”(歌手张柏芝)、“喆”(歌手陶喆)等),虽被中文社会广泛采用,也没有收录到Big5之中。

在互联网上,实在不难看到人们把游锡堃、王建煊、陶喆等名字,写成为“游锡方方土”、“王建火宣”和“陶吉吉”等写法。电视上日本动画的中文字幕中也会看到像“木坚”这样的字。

Big5未收录字举例

  • 仓颉中却可打之
  • "邨"与"着"在香港里极为常用
未收录的字 有收录的字 原因 仓颉码
俗字 女火戈戈
俗字 女火竹木尸
被认为是异体字 心山弓中(2)
异体字 水尸人土
异体字 木一日
异体字 山竹水十(2)
异体字 心火一月金(3)
被认为是异体字 廿手月山
简体字 水水(2)

Big5延伸

由于Big5码内的万多个字,只是根据中华民国教育部颁布的《常用国字标准字体表》、《次常用国字标准字体表》等用字汇编而成,并没有考虑社会上流通的人名、地名用字、方言用字、化学及生物科等用字,亦没有放入日语平假名片假名字母。

所以在市面上支援Big5码的软件,有不少都自行在原本的编码外,添加一些符号及用字。

非官方Big5延伸

倚天Big5延伸

倚天中文系统中,为与IBM5550码相容,他们在Big5码添加了以下的字符:

  • 在0xA3C0-0xA3E0,添加了33个控制字符的图象。
  • 罕用符号区。在0xC6A1-0xC875,添加了圆形1-10、括号1-10、小罗马字i-ix等章节符号、一些部首及笔划结构,日语平假名片假名俄语使用的西里尔字母
  • 在0xF9D6-0xF9FE,添加了7个倚天扩充字:碁、銹、恒、裏、墻、粧、嫺和34个表格符号。

这个延伸有时被称为Big5-Eten。由于倚天中文系统是Windows 95推出之前市场占有率最高的中文系统,此延伸是各种非官方延伸当中最重要的一个。

在后期版本的倚天中文系统中,更加入了一些图案和简体中文字,但未被广泛接受。

微软 Code Page 950

微软 Windows的 Code Page 950 (简称 CP950) 之中,只添加了上述0xF9D6-0xF9FE的倚天扩充字及表格符号,并没有加入日文假名字母等其他延伸,对不少使用Microsoft Windows的用者带来困扰。

Windows ME之中,微软首度在0xA3E1加入了欧元(€)符号,之后所有 Windows 版本的 Code Page 950 也都有这个符号。

中国海字集

中国海字集”是中国海公司所出品的繁体汉字造字档。它本身虽然是一套商品,但中国海公司很少将之单独贩售,往往是与其他软件一同销售。例如:中国海字集就曾经与《汉书》、《轻松输入法》等一同发售。由于它包括了不少社会上常见的用字、日文假名、和字等,加上曾与Office 97中文版一并发售,所以比起其他官方Big5延伸,更被台湾民众所接受。香港部份BBS网络在香港增补字符集未出现之前,一度以中国海字集为标准。

日和字集

“日和字集”乃一香港人开发的造字档,以兼容香港增补字符集为卖点,为字集中仍没函盖的日本汉字日本国字作增补,并附有仓颉、速成等输入法作辅助。

Unicode补完计划

“Unicode补完计划”前称“BIG5 Extension”,透过修改Microsoft Windows及Mozilla的编码表,从而使用者能在网上传递及交换文字。

有鉴于“中国海字集”的成功,“Unicode补完计划”第二版采用了“中国海字集”原有的造字,再加上“中国海字集”所欠的部分简体中文字及香港粤语用字,建成一个能在Big5及Unicode之间转换的编码表;该计划目前已推出了64位元测试版。

官方Big5延伸

台湾教育部造字档

中华民国教育部有它本身的一套造字档,主要给部门内使用,亦有于教育部的网上字典使用。

台湾农委会常用中文外字集

中华民国行政院农业委员会制定了一套有133个汉字的造字档,其中有84个是鱼字部汉字、7个是鸟字部汉字。

Big5+

中文数位化技术推广委员会(中推会)在1997年推出Big5+,使用了两万多码位,纳入了Unicode 1.1下所有汉字。由于编码使用到的范围超过原先Big5定义(Big5+使用了高字节0x81-0xFE,低字节0x40-0x7E、0x80-0xFE),无法安装在Microsoft Windows上,现几乎无人使用。

Big-5E

为了使Microsoft Windows使用者可以使用造字档,中华民国行政院委托中推会再次推出一个补充字集Big-5E(与Big5+并不兼容),共收3954字。它把Big5+不少汉字都去掉,更甚者放弃了倚天延伸字集的假名部分。于是,除了部分被强制使用的政府单位外,没有多少人愿意使用Big5E。

Big5-2003

鉴于Big5不是一个官方标准,中推会决定编制一个Big5的定义,并把它放到官方编码CNS 11643的附录里,正式成为官方标准的一部分。

在Big5-2003之中,收录了所有在1984年Big5编码的所有字符,另外再加入微软CP950的欧元符号、倚天延伸字集的0xA3C0-0xA3E0、0xC6A1-0xC7F2、0xF9D6-0xF9FE的用字。Big5-2003没有收录行列输入法特殊符号及0xC7F3-0xC875的俄语西里尔字母,理由是以CNS 11643没有这些字符。除此之外,所有倚天延伸全部收录。

相对于Big5-2003,最早没有加上任何延伸的Big5则被称为Big5-1984。

香港增补字符集

香港增补字符集(Hong Kong Supplementary Character Set, 简称HKSCS)是香港政府基于大五码之上扩展的字符集标准,是现时香港的中文信息交换内码标准。香港增补字符集以前称为《政府通用字库》,本来只是香港政府内部统一使用的造字档,有三千多字。但由于香港电脑业界不断要求政府迎合本地需要,提出官方的字符集方案,以便与政府进行文件来往,于是香港政府便在1995年把这个内部使用的标准公开。到了1999年,此字集增加到四千多字,并改为现名。

此字符集由中文界面咨询委员会管理,仍在不断扩编之中。最新版本为2005年5月推出的 HKSCS-2004,收录 4,941 个字符。字符集主要包括香港的地名、人名用汉字、粤语用字(包括粗言秽语在内,这是应警方法庭需要记录口供的需要)、异体字、小部份简体字平假名片假名俄语西里尔字母

发展

由于各厂商及政府推出的Big5延伸,彼此互不兼容,造成乱码问题。鉴于Unicode能正确地处理七万多个汉字,近年的操作系统和应用程式(如苹果电脑 Mac OS X 和以 Cocoa API 撰写之程式、Microsoft Windows 2000及之后版本、Microsoft Office 2000及之后版本、Mozilla浏览器、Internet Explorer浏览器、Java 语言等等),已改用Unicode编码。可惜现时仍有一些旧的软件(如Visual Basic 6、部分TelnetBBS软件),未能支援Unicode编码,故相信Big5缺字的问题仍会困扰用户一段时间,直至所有程式都能改用Unicode为止。

参考文献

  1. ^ 大五码普遍被认为包含13,053字,但在计算0xA259-0xA261的度量衡单位用字 (兙兛兞兝兡兣嗧瓩糎) ,再减去重收了两次的“兀”(0xC94A)和“嗀”(0xDDFC)后,应为13,060字。
  2. ^ 来源参考:(中文)财团法人中文数位化技术推广基金会——认识中文码
  3. ^ 来源参考:(中文)朱邦复专栏——中文微电脑之历史见证
  4. ^ 4.0 4.1 参考:(英文)perlop-Perl operators and precedence以及(中文)浅谈许盖功-中文冲码问题
  • Lunde, Ken(1999).CJKV Information Processing,First Edition,O'Reilly and Associates, Inc..ISBN 1-56592-224-7. 
  • (中文)《中文字码 万码奔腾 一码当先》作者:黄大一,永麒科技出版

参看

外部链接







Why are we here?
All text is available under the terms of the GNU Free Documentation License
This page is cache of Wikipedia. History