大五码
大五码
大五码(,又称五大专案码、五大码)是繁体中文(正-{}-体中文)社群最常用的电脑汉字字符集标准,共收录13060个汉字。
中文码分为内码及交换码两类,大五码属中文内码,知名的中文交换码有CCCII、CNS11643。
大五码虽普及于台湾、香港、澳门等繁体中文区域,但长期以来并非当地的国家/地区标准或官方标准,而只是业界标准。倚天中文系统、Windows繁体中文版等主要作业系统的字符集都是以大五码为基准,但厂商又各自增加不同的造字与造字区,衍生成多种版本。
2003年,大五码收录到CNS11643中文标准交换码的附录当中,取得正式地位。这最新版称为Big5-2003。
历史及名称.
「大五码」(--
)是由台湾财团法人资讯工业策进会为五大中文套装软体设计的中文共通内码,在1983年12月完成公告,隔年3月,资讯工业策进会与台湾13家厂商签定「16位元个人电脑套装软体合作开发(BIG-5)计划(五大中文套装软体)」,因为此中文内码是为台湾自行制作开发之「五大中文套装软体」所设计的,所以就称为Big5中文内码。五大中文套装软体虽然并没有如预期的取代国外的套装软体,但随著采用大五码的国乔中文系统及倚天中文系统先后在台湾市场获得成功,使得大五码深远影响正体中文电脑内码,直至今日。「五大码」的英文名「--
」后来被人按英文字序译回中文,以致现在有「五大码」和「大五码」两中文名。
大五码诞生,是因为当时个人电脑没有共通的内码,导致厂商推出的中文应用软体无法推广,并且与IBM 5550、王安码等内码,彼此不能兼容;另一方面,台湾当时尚未推出中文编码标准。在这样的时空背景下,为了使台湾早日进入资讯时代,共用改用新的中文编码就成为各厂商所采行的计划;同时,这个计划对于以台湾为核心的亚洲繁体汉字圈也产生了久远的影响。
大五码诞生前,研发中文电脑的朱邦复认为内码字集应该广纳所有正异体字以顾及户政等实用需求,故在当时的内码会议中,建议希望采用他五万多字的字库。工程师认为虽其技术可行,但是三位元组(超过两位元组)长度的内码却会造成英文萤幕画面映射成中文画面会发生文字无法对齐的问题,因为当时盛行之倚天中文系统画面以两位元组文字宽度映射成一个中文字图样,英文软体中只要以两个英文字宽度去显示一个中文字,画面就不会乱掉,造成中文系统业者偏爱二个位元组长度的内码;此外以仓颉输入码压缩成的内码没有排序等功能,因此未获采用。1983年有人诬指朱邦复为共产党,其研究成果更不可能获采用。
在大五码诞生后,大部分台湾的电脑软体都使用了大五码,加上后来倚天中文系统的高度普及,使后来的微软Windows 3.x等亦予以采用。虽然后来台湾还有各种想要取代大五码,像是倚天中文系统所推行的倚天码、台北市电脑公会所推动的公会码等,但是Big5字码已沿用多年,在习惯不易改变的情况下,始终无法成为主流字码。而台湾后来发展的中文资讯交换码(CCCII)非一般内码系统,是以交换使用为目的,受先天所限,必须使用至少三位元组来表示一汉字,普及率远远不及大五码。
在1990年代初期,当中国大陆的电邮和转码软体还未普遍之时,在深圳的港商和台商公司亦曾经使用Big5系统,以方便与总部交流文件、以及避免为中国的办公室再写一套不同内码的系统。使用简体中文的社群,最常用的是中国的国标码(GB 2312、GB 18030)和GBK。
除了台湾外,其他使用繁体汉字的地区,如香港(香港增补字符集)、澳门(澳门增补字符集),及使用繁体汉字的海外华人,都曾普遍使用大五码做为中文内码及交换码。
字节结构.
大五码是双位元组字符集,以十六进制表示,使用双八码储存方法,以两字节安放一字。第一字节称为「高位字节」,第二字节称为「低位字节」。
「高位字节」使用了0x81至0xFE,「低位字节」使用了0x40至0x7E,及0xA1至0xFE。在大五码的分区中:
值得留意的是,Big5重复收录了两个相同的字:「兀」(0xA461/U+5140及0xC94A/U+FA0C)、「嗀」(0xDCD1/U+55C0及0xDDFC/U+FA0D)。
此外,部分编码映射把符号区的苏州码子「〸」、「〹」、「〺」映射至汉字(分别为U+5341,U+5344和U+5355)而非中日韩符号和标点区(分别为U+3038,U+3039和U+303A),在检索系统中常会造成查询不到字。
冲码问题.
低位元字元中包含了程式语言、shell、script中,字串或命令常会用到的0x5C“\”、0x7C“|”等特殊字元。「\」在许多用途的字串中是当作转义符号,例如\n(换行)、\r(归位)、\t(tab)、\\(\本身符号)、\"(引号)等等。而「|」在UNIX作业系统中大多当作命令管线的使用,如"ls -la | more"等等。如果在字串中有这些特殊的转义字元,会被电脑程式或直译器解释为特殊用途。但是因为是中文的原因,故无法正确解释为上面所述的行为,因此程式可能会忽略此转义符号或是误当作转义符号而中断执行。若此,就违反了使用者本来要当成中文字元一部份使用的本意。
低位元字元与ASCII重叠的字元为0x40到0x7E,如下︰
@ A-Z [ \ ] ^ _ ` a-z { | } ~
在常用字如「-{功}-」(0xA55C)、「-{许}-」(0xB35C)、「-{盖}-」(0xBB5C)、「-{育}-」(0xA87C)、「-{会}-」(0xB77C)、「-{院}-」(0xB07C)中时常出现,许多软体无法正确处理以大五编码的字串或文件。这问题被戏谑性地人名化,称为「-{许功盖}-」或「-{许盖功}-」(这三个字都有这种问题)。
一般的解决方法,是额外增加“\”的字元,因为“\\”会被解释为“\”,所以“成功\因素”这字串就能无误地被程式当作“成功因素”的字串来处理。但是额外的困扰是,有些输出功能并不会把“\”当作特殊字元看待,所以有些程式或网页就会常常在「许功盖」这些字后面错误地多显示了“\”。
低位元组为「\」(0x5C)的字元:
-{﹏ 兝 α 么 功 咤 吭 沔 坼 殁 俞 枯 苒 娉 珮 豹 崤 泪 许 厩 琵 跚 愧 稞 铀 暝 盖 墦 谷 阅 璞 餐 缕 摆 黠 孀 髅 蹑 ふ ж 尐 佢 汻 岤 狖 垥 柦 胐 娖 涂 罡 偅 惝 牾 莍 傜 揊 焮 茻 鄃 幋 滜 綅 赨 槙 箤 踊 嫹 涠 蔌 醆 嬞 獦 螏 餤 燡 螰 駹 锼 瀙 酀 瀵 酅 贕 鱋 鲚}-
低位元组为「|」(0x7C)的字元:
-{﹄ └ ㄍ 弋 四 帆 坑 育 尚 泜 咽 洱 迢 径 砝 院 悴 琍 逖 揉 税 闰 会 腮 颂 漏 诫 慝 骂 鲁 糕 尝 举 瓮 牍 辫 叠 鹳 ア 戉 吜 芎 怙 矹 峗 洀 苶 恝 烡 茦 唰 掤 痎 虖 圌 斮 琰 萆 隇 搉 煟 腶 嫟 漒 翣 銔 憰 獡 蔙 鋧 懁 瞣 褟 鲐 瞲 觲 鴱 聩 鞫 矱 霬 礨 鹕 骖 骣 鼶 鸓}-
当把有中文字元档名的档案上传到ftp时,当中包含低位元组为0x5C(\)的字元的档案是不能上传到ftp的,而当中包含低位元组为0x7C(|)的字元的档案,是可以上传到ftp(只要不包含低位元组为0x5C的字元),但是低位元组会变成0x5F(_),例如档名「-{教育部第四次会议纪录}-」会变成「-{教灶部第北次恺议纪录}-」。
与画线字元相冲.
大五码字元的首位元组会与DOS代码页437的画线字元相冲而产生乱码。
例如
│维基百科│
当中的中文字如以大五码储存,显示时会变成:
竟�穧坌鮈�
也有替代方法就是用全形划线符号,但较占空间。倚天公司另外推出倚天码解决此问题,但不流行。
私人造字区.
在倚天中文系统,以及后来的Windows 3.1、95及98中,定义四个私人造字区范围:0xFA40-0xFEFE、0x8E40-0xA0FE、0x8140-0x8DFE、0xC6A1-0xC8FE。
私人造字区的原意,是供使用者加入本来在编码表中缺少的字元,但当每个使用者都在不同的地方加上不同的字元后,当交换资料时,对方便难以知道某一个编码究竟想表达什么字。
影响.
大五码的一万多字只是根据中华民国教育部颁布的《常用国字标准字体表》、《次常用国字标准字体表》等用字汇编而成,并没有考虑社会上流通的人名、地名用字、方言用字、化学及生物科学等用字,亦没有放入日语平假名及片假名字母;很多日常用字因被视为异体字而未收录。自中文电脑流行后,很多人,甚至电视台的字幕、报纸的用字习惯都因此改变。
例如中华民国教育部视「-{着}-」为「-{著}-」的异体字,故没有收录「-{着}-」字。不过「-{着}-」字在香港教育标准里是正字,与「-{著}-」字分工。又例如台湾选择了「-{里、峰、床、群、卫}-」作为正字,不过香港教育标准的正字则选用「-{里、峰、床、群、衞}-」,Big5码的收字问题令香港老师大伤脑筋。
粤语地区使用粤文,可是很多官话中文不使用的粤文汉字,Big5码都没有收录,例如「-{嘅、喺、咗、、啲、吓、㖭、㗎、啱、㓤、両、乸、冚、冧、唞、、嘞、噏、嚟、嚿、噃、孭、掹、揸、揞、揼、聱、搲、摱、攞、攰、枧、㶶、瞓、粽、糍、螆、裇、踎、踭、軚、、、䢂}-」等字。港澳地区有不少地名,也都需要使用Big5码没收录的字,比如「-{邨}-」(香港绝大部份公共屋邨名字,像杏花邨与牛头角上邨等)、「-{埗}-」(深水埗)、「-{氹}-」(氹仔)、「-{鲗}-」(鲗鱼涌)、「-{}-」(赤角)、「-{滘}-」(大埔滘)、「-{脷}-」(鸭脷洲)等等,只用Big5码,无法打出这些字。台湾也有闽南语字、客语字等等地方用字面对相同情况,例如「-{廍}-」,台语指制糖所,常见于乡间地名,但Big5码未收此字。
另一个例子是「-{鱻}-」字,在海鲜餐厅偶尔会看到,但是Big5码也没有收此字,另外还有尘螨的「-{螨}-」字,因为现代人体质易过敏、环境常有过敏源,此字很常用。
还有,康熙字典中的一些部首用字(如「-{丨}-」、「-{丶}-」、「-{亠}-」、「-{疒}-」、「-{辵}-」、「-{癶}-」、「-{隶}-」等)、姓氏用字「-{凃}-」、常见人名用字(如「-{堃}-」(中华民国前行政院院长游锡堃)、「-{煊}-」(中华民国前监察院院长、前财政部部长王建煊、中华人民共和国羽球运动员夏煊泽)、「-{栢}-」(歌手张栢芝)、「-{峰}-」(歌手吴青峰、林峰)、「-{喆}-」(歌手陶喆、关喆)、「-{珉}-」(韩国女演员权珉娥、韩国男演员沈昌珉)、「-{瑈}-」(前越南总统吴廷琰胞弟吴廷瑈、钢琴老师柯妍瑈、童星林芷瑈)、「-{瀞}-」(台北市议会议员黄瀞莹、女演员黄瀞怡)、「-{䕒}-」(女演员张䕒心)、「-{彣}-」(台湾游泳运动员林姵彣、新加坡男演员姚彣隆、香港空手道运动员陈枷彣)、「-{群}-」(香港名人李曾超群、台湾歌手林育群)、以及「-{伃}-」(常见于女子名,如女演员郑倢伃,来自于女官名倢伃,后来改写成女部的「婕妤」让性别变明显,但是Big5码却只收录「-{倢}-」字而漏掉了「-{伃}-」字))、常见公司或机构名用字(例如「-{线}-」(-{无线电视}-)、「-{汇}-」(-{汇丰银行}-)、「-{恒}-」(-{恒生银行}-)、「-{碁}-」(-{宏碁电脑}-)等),这些字虽然受中文社会广泛采用,也没有收录到Big5码中。
另外许多日本人姓名中有的字,也没有收录在Big5码之中,如「-{瑠}-」(日本棒球选手欧可耶瑠伟、瑠公郭锡瑠、日本AV女优瑠川里菜、日本女艺人波瑠、香港VTuber如月瑠美)、「-{㭴}-」(日本漫画家富㭴义博、日本男性声优㭴井笙人)、「-{畑}-」(日本漫画家小畑健、日本警探电视剧角色古畑任三郎)、「-{坂}-」(日本作曲家坂本龙一、日本演员坂口健太郎)、「-{渕}-」(日本声优渕上舞、日本女配音员渕崎有里子)、「-{凪}-」(日本漫画角色三千院凪)等字,都是如此。
另外,许多俗字如-{「双」、「厦」、「厰」、「厕」、「么」}-也没有收录在Big5码中,但是香港仍然普遍使用俗字,很多字的正写(-{「双」、「厦」、「厂」、「厕」、「么」}-)甚至连很多成年人也不知道。
Big5码的缺字之中,也有不少科学用字,例如化学元素名称也没有收录齐全,包括「-{钷}-」、「-{砈}-」、「-{钫}-」、「-{锫}-」、「-{锘}-」,以及-{}-之后的元素(除「-{}-」、「-{}-」、「-{}-」、「-{镆}-」外)都没有收录,以及有机化学用字如「-{萘}-」、「-{蒽}-」、「-{腈}-」、「-{肼}-」等,也都没有收录。
碰到Big5码没收录的字,许多人会以其他字代替。以「坂」字为例,人们经常以「阪」字代替(注意大阪的古称就是「大坂」,见大坂之役),许多业者(例如光荣)在制作相关的历史题材游戏的中文版本时,本应使用古名的「坂」但仍以「阪」字代替,以致现时仍然有不少中文使用者误植为「大阪之阵」,还有像「廍」字,也常被「廓」、「部」代替。其他未收录的地名用字,如「磘」,也被「瑶」、「嗂」代替,另外「-{汇}-丰银行」与「-{恒}-生银行」虽然分别以「-{汇}-」字与「-{恒}-」字来注册,不过人们也常常分别以「-{汇}-」字与「-{恒}-」字代替。
另一种做法系依赖拆字法。在互联网上,经常能见到把游锡堃、王建煊、张-{栢}-芝、陶喆等名字,写成为「游锡方方土」(『方方土』亦因此成为游锡堃的暱称之一)、「王建火宣」、「张木百芝」和「陶吉吉」等。电视上日本动画的中文字幕中也会看到像「-{木坚}-」(-{㭴}-)、「-{火田}-」(-{畑}-)这样的字。而有口字旁的香港字,许多人会用英文字母「o」代替口部,例如「o既」(-{嘅}-)、「-{o系}-」(-{喺}-)、「o左」(-{咗}-)。
Big5延伸.
市面上支援大五码的软件有不少会自行在原本编码外添加一些符号及用字。
非官方Big5延伸.
倚天Big5延伸.
倚天中文系统为与IBM5550码相容,在大五码添加了以下字元,称为倚天扩充字集:
-{H|zh-hans:重定向;zh-hant:重新导向;}--{H|zh-cn:字符;zh-tw:字元;}--{H|zh-hans:文件; zh-hant:档案;}--{H|zh-hans:快捷方式; zh-hant:捷径;}--{H|zh-hans:项目;zh-hant:专案;zh-tw:计划;zh-hk:计划;zh-mo:计划;}--{H|zh-cn:计算机; zh-sg:电脑; zh-tw:电脑;}-
这个延伸有时称为Big5-Eten。由于倚天中文系统是Windows 95推出之前市场占有率最高的中文系统,此延伸是各种非官方延伸当中最重要的一个。不少后续的延伸字集,都会留空倚天Big5延伸已使用的码位,甚至直接吸纳倚天Big5延伸的字符(但位于C8A5至C8CC的行列40输入法键名除外)。
添加了7个倚天扩充字后,理论上,常用率非常高的「-{里}-」字,以及「-{恒生}-」、「-{宏碁}-」等品牌,可以直接使用这些写法,不必改为原装Big5码中的「-{里}-」、「-{恒}-」、「-{棋}-」等字。不过因为输入习惯、输入法问题或避免交换文件到其他系统时乱码,不少人依然习惯以「-{里}-」、「-{恒}-」、「-{棋}-」等字代替「-{里}-」、「-{恒}-」、「-{碁}-」等字。
在后期版本的倚天中文系统中,更加入了一些图案和简体中文字,但未被广泛接受。
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网络在香港增补字符集未出现之前,一度以中国海字集为标准。
日和字集.
「日和字集」乃香港人内木一郎和阿烈开发的TrueType造字档,以兼容香港增补字符集为卖点,增补字集中仍没涵盖的日语假名、日本汉字和日本国字,有细明体、标楷体、中黑体等配合Windows 95、98、NT等作业系统字型的字款,并附有仓颉、速成等输入法作辅助,以及把字集文档转换至日语编码的转码器工具。
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年大五编码的所有字元,另外再加入微软代码页950的欧元符号、倚天延伸字集的0xA3C0-0xA3E0、0xC6A1-0xC7F2、0xF9D6-0xF9FE的用字。Big5-2003没有收录行列输入法特殊符号及0xC7F3-0xC875的俄语西里尔字母,理由是以CNS 11643没有这些字符。除此之外,所有倚天延伸全部收录。另外,它试图减少Unicode东亚文字字宽有问题的「模糊」部份,它改变了某些符号的Unicode对应,导致代码页950并不完全是Big5-2003的子集合;另外,0xC6C0-0xC6D7对应到Unicode的康熙字典部首区而非汉字区。
相对于Big5-2003,最早没有加上延伸之Big5则称为Big5-1984。
香港增补字符集.
香港增补字符集(Hong Kong Supplementary Character Set,简称HKSCS)是香港政府基于大五码之上扩展的字符集标准,是现时香港的中文资讯交换内码标准。香港增补字符集以前称为《政府通用字库》,本来只是香港政府内部统一使用的造字档,有三千多字。但由于香港电脑业界不断要求政府迎合本地需要,提出官方的字符集方案,以便与政府来往文件,于是香港政府便在1995年把这套内部使用的标准公开。到了1999年,此字集增加到四千多字,并改为现名。
此字符集由中文界面咨询委员会管理,仍在不断扩编之中。字符集主要包括香港地名、人名用汉字、粤语用字(包括粗言秽语在内,这是应警方及法庭需要记录口供之用)、异体字、小部份简体字、平假名、片假名及俄语西里尔字母。
发展.
各厂商及政府推出的大五延伸互不兼容,造成乱码问题。鉴于Unicode能正确处理七万多汉字,近年的作业系统和应用程式(如苹果电脑Mac OS X和以Cocoa API撰写之程式、Microsoft Windows 2000及之后版本、Microsoft Office 2000及之后版本、Mozilla浏览器、Internet Explorer浏览器、Java语言等等),已改用Unicode编码。可惜现时仍有一些旧的软件(如Visual Basic 6、部分Telnet或BBS软件),未能支援Unicode编码。
参考文献.
外部连结.
-{H|zh-hans:重定向;zh-hant:重新导向;}--{H|zh-cn:字符;zh-tw:字元;}--{H|zh-hans:文件; zh-hant:档案;}--{H|zh-hans:快捷方式; zh-hant:捷径;}--{H|zh-hans:项目;zh-hant:专案;zh-tw:计划;zh-hk:计划;zh-mo:计划;}--{H|zh-cn:计算机; zh-sg:电脑; zh-tw:电脑;}-