本页使用了标题或全文手工转换

大五码

维基百科,自由的百科全书
跳转至: 导航搜索

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

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

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

2003年,Big5被收录到CNS11643中文标准交换码的附录当中,获取了较正式的地位。这个最新版本被称为Big5-2003

历史及名称[编辑]

“大五码”(Big5)是由台湾财团法人信息产业策进会五大中文套装软件所设计的中文共通内码,在1983年12月完成公告[2][3],隔年3月,信息产业策进会与台湾13家厂商签定“16位个人电脑套装软件合作开发(BIG-5)项目(五大中文套装软件)”[4],因为此中文内码是为台湾自行制作开发之“五大中文套装软件”所设计的,所以就称为Big5中文内码[5][6][7][8]。五大中文套装软件虽然并没有如预期的取代国外的套装软件,但随着采用Big5码的国乔中文系统倚天中文系统先后在台湾市场获得成功,使得Big5码深远地影响繁体中文电脑内码,直至今日。“五大码”的英文名称“Big5”后来被人按英文字序译回中文,以致现在有“五大码”和“大五码”两个中文名称。

Big5码的产生,是因为当时个人电脑没有共通的内码,导致厂商推出的中文应用软件无法推广,并且与IBM 5550王安码等内码,彼此不能兼容;另一方面,台湾当时尚未推出中文编码标准。在这样的时空背景下,为了使台湾早日进入信息时代,所采行的一个项目;同时,这个项目对于以台湾为核心的亚洲繁体汉字圈也产生了久远的影响。

Big5产生前,研发中文电脑朱邦复认为内码字集应该广纳所有的正异体字,以顾及如户政等应用上的需要,故在当时的内码会议中,建议希望采用他的五万多字的字库。工程师认为虽其技术可行,但是三个字节(超过两个字节)长度的内码却会造成英文屏幕画面映射成中文画面会发生文字无法对齐的问题,因为当时盛行之倚天中文系统画面系以两个字节文字宽度映射成一个中文字图样,英文软件中只要以两个英文字宽度去显示一个中文字,画面就不会乱掉,造成中文系统业者偏爱二个字节长度的内码[9];此外以仓颉输入码压缩成的内码不具排序等功能,因此未被采用。1983年有人诬指朱邦复为共产党,其研究成果更不可能获采用。[10]

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

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

除了台湾外,其他使用繁体汉字的地区,如香港香港增补字符集)、澳门,及使用繁体汉字的海外华人,都曾普遍使用Big5码做为中文内码及交换码。

中文码相关标准历程[编辑]

1983年 “通用汉字标准交换码”试用版发行,包括13,053个字与441个符号,分为二个字面,先笔画数,后部首序排列。

12月:Big-5大五码,包括13,053个字与441个符号,字集与字序与交换码试用版完全相同,仅字码定义不同。

1984年 3月:台湾资策会与其国内13家厂商签定“五大中文套装软件”开发项目,而“大五码”即是为“五大中文套装软件”所设计之中文内码。
1986年 国家标准“CNS 11643通用汉字标准交换码”正式版发行,包括13,051个字(删除2个重复字,调整20个字顺序)与441个符号,其余均与试用版相同。
1988年 公布“通用汉字标准交换码”-用户加字区交换码,即第十四字面,共6,148字。
1989年 再公布用户加字区交换码(增编)157字。
1992年 国家标准“CNS 11643中文标准交换码”新版发行,扩充第3-7字面并更换名称,总共包括48,027个字与684个符号(增加部首和数字符号)。
1997年 Big-5E大五码扩充,同1984年版,包括13,053个字与441个符号,另于造字区定义3,954个较常使用的造字。
2002年 国际标准ISO 10646 / Unicode的中文版“CNS 14649广用多八比特编码字符集”,包括中、日、韩、越等20,902个汉字(现已扩充至十万字左右),及全球使用的字符。
2008年 国家标准“CNS 11643中文标准交换码”扩充版发行,增加了户政用字与异体字等。

字节结构[编辑]

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])。此外“十”、“卅”也在符号区又重复了一次,在检索系统中常会造成查询不到字。

冲码问题[编辑]

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

低比特字符与ASCII重叠的字符如下︰

@ A-Z [ \ ] ^ _ ` a-z { | } ~ 

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

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

与画线字符相冲[编辑]

Big5码字符的首字节会与DOS代码页437画线字符相冲而产生乱码。

例如

┌───────┐
│維基百科│
└───────┘

当中的中文字如以Big5码存储,显示时会变成:

┌────────┐
竟?穧坌鮈?
└────────┘

也有替代方法就是用全角划线符号,但较占空间。倚天公司另外推出倚天码解决此问题,但不流行。

私人造字区[编辑]

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

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

影响[编辑]

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

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

另外像台湾的,闽南语指制糖所,常见于乡间地名。但由于大五码未收此字,也被被“廓”、“部”代替。

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

Big5未收录字举例[编辑]

  • 仓颉输入法中却可打之
  • “邨”、“着”及“綫”在香港极为常用
  • 尘“螨”因为现代人体质易过敏、环境常有过敏源,“螨”很常用
未收录的字 有收录的字 原因 仓颉码
俗字 女火戈戈
俗字 女火竹木尸
俗字 金竹木尸
异体字 水尸人土
异体字 木一日
异体字 山竹水十(2)
异体字 心火一月金(3)
被认为是异体字 心山弓中(2)
被认为是异体字 廿手月山
俗字 水水(2)
异体字

Big5延伸[编辑]

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

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

非官方Big5延伸[编辑]

倚天Big5延伸[编辑]

倚天中文系统为与IBM5550码兼容,在Big5码添加了以下字符,称为倚天扩充字集

00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
F9D0            
F9E0
F9F0  

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

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

Code Page 950[编辑]

Windows使用的Code Page 950(系引用IBM Big 5码的编码页号Code Page 950,简称CP950)之中,只添加了上述0xF9D6-0xF9FE的倚天扩充字及表格符号,并没有加入日文假名字母等其他延伸。

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+的编码限制,再加上Unicode已渐成气候,除了部分政府单位使用之外,Big-5E并没有被广泛的接受。Mac OS X 10.4及以上支持Big-5E。

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年,此字集增加到四千多字,并改为现名。

此字符集由中文界面咨询委员会管理,仍在不断扩编之中。字符集主要包括香港地名、人名用汉字、粤语用字(包括粗言秽语在内,这是应警方法庭需要记录口供的需要)、异体字、小部分简体字平假名片假名俄语西里尔字母

发展[编辑]

由于各厂商及政府推出的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为止。

输入方法[编辑]

  • VimIM在Vim环境中,可以直接键入十进制或十六进制Big5码。既不需要引导输入法,也不需要码表。

参考文献[编辑]

  1. ^ 普遍认为大五码包含13,053字,但在计算0xA259-0xA261的九个度量衡单位用字(兙兛兞兝兡兣嗧瓩糎),再减去重收了两次的“兀”(0xC94A)和“嗀”(0xDDFC)后,应为13,060字。
  2. ^ 来源参考:(中文)资策会大事纪要,1983年 互联网档案馆存档,存档日期2010-11-04.
  3. ^ 来源参考:(中文)资策会大事纪要 互联网档案馆存档,存档日期2010-11-04.
  4. ^ 来源参考:(中文)资策会大事纪要,1984年 互联网档案馆存档,存档日期2010-11-04.
  5. ^ 来源参考:(中文)行政院主计处电子处理数据中心中文全字库——中文码介绍-BIG-5码介绍
  6. ^ 来源参考:(中文)数字杂谈 - 中文的电脑或电脑的中文?,谌家雄
  7. ^ 来源参考:(中文)CMEX财团法人中文数字化技术推广基金会 - 认识中文码:九、Big5和Big5E
  8. ^ 来源参考:(中文)与文字共舞___中文数字化发展简介[失效链接]
  9. ^ 来源参考:倚天中文系统、国乔中文系统
  10. ^ 来源参考:(中文)朱邦复专栏——中文微电脑之历史见证
  11. ^ 11.0 11.1 参考:(英文)perlop-Perl operators and precedence以及(中文)浅谈许盖功-中文冲码问题
  • Lunde, Ken. CJKV Information Processing First Edition. O'Reilly and Associates, Inc. 1999. ISBN 978-1-56592-224-2. 
  • (中文)《中文字码 万码奔腾 一码当先》作者:黄大一,永麒科技出版

参看[编辑]

外部链接[编辑]