【大五码】
大五码（Big5，又称为五大专案码）是使用繁体中文（正-{}-体中文）社群中最常用的电脑汉字字符集标准，共收录13,060个汉字。
中文码分为内码及交换码两类，Big5属中文内码，知名的中文交换码有CCCII、CNS11643。
Big5虽普及于台湾、香港、澳门等繁体中文区域，但长期以来并非当地的国家/地区标准或官方标准，而只是业界标准。倚天中文系统、Windows繁体中文版等主要作业系统的字符集都是以Big5为基准，但厂商又各自增加不同的造字与造字区，衍生成多种不同版本。
2003年，Big5收录到CNS11643中文标准交换码的附录当中，取得了较正式的地位。这个最新版本称为Big5-2003。
==历史及名称==
「大五码」（Big5）是由台湾财团法人资讯工业策进会为五大中文套装软体所设计的中文共通内码，在1983年12月完成公告，隔年3月，资讯工业策进会与台湾13家厂商签定「16位元个人电脑套装软体合作开发（BIG-5）计划（五大中文套装软体）」，因为此中文内码是为台湾自行制作开发之「五大中文套装软体」所设计的，所以就称为Big5中文内码。五大中文套装软体虽然并没有如预期的取代国外的套装软体，但随著采用Big5码的国乔中文系统及倚天中文系统先后在台湾市场获得成功，使得Big5码深远地影响正体中文电脑内码，直至今日。「五大码」的英文名称「Big5」后来被人按英文字序译回中文，以致现在有「五大码」和「大五码」两个中文名称。
Big5码的产生，是因为当时个人电脑没有共通的内码，导致厂商推出的中文应用软体无法推广，并且与IBM 5550、王安码等内码，彼此不能兼容；另一方面，台湾当时尚未推出中文编码标准。在这样的时空背景下，为了使台湾早日进入资讯时代，所采行的一个计划；同时，这个计划对于以台湾为核心的亚洲繁体汉字圈也产生了久远的影响。
Big5产生前，研发中文电脑的朱邦复认为内码字集应该广纳所有的正异体字，以顾及如户政等应用上的需要，故在当时的内码会议中，建议希望采用他的五万多字的字库。工程师认为虽其技术可行，但是三个位元组（超过两个位元组）长度的内码却会造成英文萤幕画面映射成中文画面会发生文字无法对齐的问题，因为当时盛行之倚天中文系统画面以两个位元组文字宽度映射成一个中文字图样，英文软体中只要以两个英文字宽度去显示一个中文字，画面就不会乱掉，造成中文系统业者偏爱二个位元组长度的内码；此外以仓颉输入码压缩成的内码不具排序等功能，因此未被采用。1983年有人诬指朱邦复为共产党，其研究成果更不可能获采用。
在Big5码诞生后，大部分台湾的电脑软体都使用了Big5码，加上后来倚天中文系统的高度普及，使后来的微软Windows 3.x等亦予以采用。虽然后来台湾还有各种想要取代Big5码，像是倚天中文系统所推行的倚天码、台北市电脑公会所推动的公会码等，但是由于Big5字码已沿用多年，因此在习惯不易改变的情况下，始终无法成为主流字码。而台湾后来发展的中文资讯交换码（CCCII）由于非一般的内码系统，是以交换使用为目的，受先天所限，必须使用至少三个位元组来表示一个汉字，所以普及率远远不及Big5码。
在1990年代初期，当中国大陆的电邮和转码软体还未普遍之时，在深圳的港商和台商公司亦曾经使用Big5系统，以方便与总部的文件交流、以及避免为中国的办公室再写一套不同内码的系统。使用简体中文的社群，最常用的是中国的国标码（GB 2312、GB 18030）和GBK。
除了台湾外，其他使用繁体汉字的地区，如香港（香港增补字符集）、澳门（澳门增补字符集），及使用繁体汉字的海外华人，都曾普遍使用Big5码做为中文内码及交换码。
==相关标准历程==
==字节结构==
Big5码是一套双位元组字符集，使用了双八码储存方法，以两个字节来安放一个字。第一个字节称为「高位字节」，第二个字节称为「低位字节」。
「高位字节」使用了0x81-0xFE，「低位字节」使用了0x40-0x7E，及0xA1-0xFE。在Big5的分区中：
值得留意的是，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）中时常出现，造成了许多软体无法正确处理以Big5编码的字串或文件。这个问题被戏谑性地人名化，称为「-{许功盖}-」或「-{许盖功}-」（这三个字都有这种问题）。
一般的解决方法，是额外增加“\”的字元，因为“\\”会被解释为“\”，所以“成功\因素”这个字串就能无误地被程式当作“成功因素”的字串来处理。但是额外的困扰是，有些输出功能并不会把“\”当作特殊字元看待，所以有些程式或网页就会错误地常常出现在「许功盖」这些字后面多了“\”。
低位元组为「\」（0x5C）的字元：
-{﹏ 兝 α 么 功 咤 吭 沔 坼 殁 俞 枯 苒 娉 珮 豹 崤 泪 许 厩 琵 跚 愧 稞 铀 暝 盖 墦 谷 阅 璞 餐 缕 摆 黠 孀 髅 蹑 ふ ж 尐 佢 汻 岤 狖 垥 柦 胐 娖 涂 罡 偅 惝 牾 莍 傜 揊 焮 茻 鄃 幋 滜 綅 赨 𪣻 槙 箤 踊 嫹 涠 蔌 醆 嬞 獦 螏 餤 燡 螰 駹 𥐟 锼 瀙 酀 瀵 𫘬 酅 贕 鱋 鲚}-
低位元组为「|」（0x7C）的字元：
-{﹄ └ ㄍ 弋 四 帆 坑 育 尚 泜 咽 洱 迢 径 砝 院 悴 琍 逖 揉 税 闰 会 腮 颂 漏 诫 慝 骂 鲁 糕 尝 举 瓮 牍 辫 叠 鹳 ア 𠂊 戉 吜 芎 怙 矹 峗 洀 苶 恝 烡 茦 唰 掤 痎 虖 圌 斮 琰 萆 隇 搉 煟 腶 𪨶 嫟 漒 翣 銔 憰 獡 蔙 鋧 懁 瞣 褟 鲐 瞲 觲 鴱 聩 鞫 矱 霬 礨 鹕 骖 骣 鼶 鸓}-
当把有中文字元档名的档案上传到ftp时，当中包含低位元组为0x5C（\）的字元的档案是不能上传到ftp的，而当中包含低位元组为0x7C（|）的字元的档案，是可以上传到ftp（只要不包含低位元组为0x5C的字元），但是低位元组会变成0x5F（_），例如档名「-{教育部第四次会议纪录}-」会变成「-{教灶部第北次恺议纪录}-」。
====与画线字元相冲====
Big5码字元的首位元组会与DOS代码页437的画线字元相冲而产生乱码。
例如
┌───────┐
│维基百科│
└───────┘
当中的中文字如以Big5码储存，显示时会变成：
┌────────┐
竟�穧坌𬶋�
└────────┘
也有替代方法就是用全形划线符号，但较占空间。倚天公司另外推出倚天码解决此问题，但不流行。
===私人造字区===
在倚天中文系统，以及后来的Windows 3.1、95及98中，定义四个私人造字区范围：0xFA40-0xFEFE、0x8E40-0xA0FE、0x8140-0x8DFE、0xC6A1-0xC8FE。
私人造字区的原意，是供使用者加入本来在编码表中缺少的字元，但当每个使用者都在不同的地方加上不同的字元后，当交换资料时，对方便难以知道某一个编码究竟想表达什么字。
==影响==
自中文电脑流行后，由于很多日常用字被视为异体字而未收录。很多人，甚至电视台的字幕、报纸的用字习惯都被改变。
例如中华民国教育部视「-{着}-」为「-{著}-」的异体字，故没有收录「-{着}-」字。康熙字典中的一些部首用字（如「-{亠}-」、「-{疒}-」、「-{辵}-」、「-{癶}-」等）、常见的人名用字（如「-{堃}-」（中华民国前行政院长游锡堃）、「-{煊}-」（中华民国前监察院院长、前财政部长王建煊）、「-{栢}-」（歌手张栢芝）、「-{峰}-」（歌手吴青峰、林峰）、「-{喆}-」（歌手陶喆）等）、「-{群}-」（香港名人李曾超群）等），虽受中文社会广泛采用，也没有收录到Big5。
另外像台湾的「廍」，台语指制糖所，常见于乡间地名。但由于大五码未收此字，也被「廓」、「部」代替。其他未收录的地名用字，如「磘」，也被「瑶」、「嗂」代替。
在互联网上，经常能见到把游锡堃、王建煊、张栢芝、陶喆等名字，写成为「游锡方方土」、「王建火宣」、「张木百芝」和「陶吉吉」等。电视上日本动画的中文字幕中也会看到像“-{木坚}-”（-{㭴}-）这样的字。
===Big5未收录字举例===
*在仓颉输入法中却可输入。
*「邨」、「-{着}-」及「-{线}-」在香港极为常用。而且「邨」和「村」、「-{着}-」和「-{著}-」在香港有客观的字义分工，不能视为异体字。
*尘「螨」因为现代人体质易过敏、环境常有过敏源，「螨」很常用。
==Big5延伸==
由于Big5码内的一万多个字，只是根据中华民国教育部颁布的《常用国字标准字体表》、《次常用国字标准字体表》等用字汇编而成，并没有考虑社会上流通的人名、地名用字、方言用字、化学及生物科学等用字，亦没有放入日语平假名及片假名字母。
所以在市面上支援Big5码的软件，有不少都自行在原本的编码外，添加一些符号及用字。
===非官方Big5延伸===
====倚天Big5延伸====
倚天中文系统为与IBM5550码相容，在Big5码添加了以下字元，称为倚天扩充字集：
*在0xA3C0-0xA3E0，添加了33个控制字符图像。
*罕用符号区。在0xC6A1-0xC8D3，添加了圆形1-10、括号1-10、小写罗马数字（ⅰ、ⅱ、ⅲ、…、ⅸ、ⅹ）等章节符号、一些部首（-{⼂、⼃、⼅、⼇、⼌、⼍、⼎、⼓、⼖、⼙、⼛、⼢、⼧、⼮、幺、⼴、⼵、⼹、⼺、⽁、⽆、⽧、⽨、⾡、⾪}-）及笔画结构（-{㇏、𠃌、乚、𠂊、刂、䒑、龰、冈、龱、𧘇}-）、日语中的平假名、片假名和常用符号，以及俄语使用的西里尔字母，此外还有行列40输入法使用的键名。
*在0xF9D6-0xF9FE，添加了7个倚天扩充字（-{碁、锈、里、墙、恒、粧、娴}-）和34个制表符号和区块元件。
这个延伸有时称为Big5-Eten。由于倚天中文系统是Windows 95推出之前市场占有率最高的中文系统，此延伸是各种非官方延伸当中最重要的一个。不少后续的延伸字集，都会留空倚天Big5延伸已使用的码位，甚至直接吸纳倚天Big5延伸的字符（但位于C8A5至C8CC的行列40输入法键名除外）。
在后期版本的倚天中文系统中，更加入了一些图案和简体中文字，但未被广泛接受。
====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年Big5编码的所有字元，另外再加入微软代码页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年，此字集增加到四千多字，并改为现名。
此字符集由中文界面咨询委员会管理，仍在不断扩编之中。字符集主要包括香港地名、人名用汉字、粤语用字（包括粗言秽语在内，这是应警方及法庭需要记录口供的需要）、异体字、小部份简体字、平假名、片假名及俄语西里尔字母。
==发展==
由于各厂商及政府推出的Big5延伸，彼此互不兼容，造成乱码问题。鉴于Unicode能正确地处理七万多个汉字，近年的作业系统和应用程式（如苹果电脑Mac OS X和以Cocoa API撰写之程式、Microsoft Windows 2000及之后版本、Microsoft Office 2000及之后版本、Mozilla浏览器、Internet Explorer浏览器、Java语言等等），已改用Unicode编码。可惜现时仍有一些旧的软件（如Visual Basic 6、部分Telnet或BBS软件），未能支援Unicode编码。
==输入方法==
*VimIM在Vim环境中，可以直接键入十进制或十六进制 Big5 date=20090829202528 码。既不需要启动输入法，也不需要码表。
==参考文献==
* id = ISBN 978-1-56592-224-2
*《中文字码 万码奔腾 一码当先》作者：黄大一，永麒科技出版
==参看==
*CCCII
*GB 18030《信息交换用汉字编码字符集基本集的扩充》
*Unicode
*中日韩统一表意文字
*中文乱码
*香港增补字符集（HKSCS）
*国家标准中文交换码（CNS 11643）
==外部连结==
* Big5字符集简介
* Big5编码系统 date=20141230044712
* Big5内码表 date=20200915145914
* BIG5编码查询
* CCCII中文资讯交换码
* CNS 11643国家标准中文交换码 date=20201224140939
* ICU Converter Explorer (Big5) date=20080622093136
* Mozilla系列与Big5中文字码 date=20211117162529
* RFC1922附录中含Big5和CNS11643相转资讯 date=20200918205922
* 中文数位化技术推广基金会date=20091013111422
* 微软CP950编码表 date=20161025115729
* 香港特区政府：香港增补字符集
* 补完计划跟Big5 2003相异处（扣掉保留区、造字区）
-{}-