Unicode 编码
中文文本

Unicode 转中文

Unicode,全称为 Unicode 标准(The Unicode Standard),其官方机构 Unicode 联盟所用的中文名称为 统一码,又译作 万国码统一字元码统一字符编码,是信息技术领域的业界标准,其整理、编码了世界上大部分的文字系统,使得电脑能以通用划一的字符集来处理和显示文字,不但减轻在不同编码系统间切换和转换的困扰,更提供了一种跨平台的乱码问题解决方案。Unicode 由非营利机构 Unicode 联盟(Unicode Consortium)负责维护,该机构致力让 Unicode 标准取代既有的字符编码方案,因为既有方案编码空间有限,亦不适用于多语环境。

Unicode 伴随着通用字符集 ISO/IEC 10646 的标准而发展,同时也以书本的形式对外发表。Unicode 至今仍在不断增修,每个新版本都加入更多新的字符。目前最新的版本为 2022 年 9 月公布的 15.0.0,已经收录超过 14 万个字符(第十万个字符在 2005 年获采纳)。Unicode 标准不仅仅只是为文字指定代码。除了涵盖视觉上的字形、编码方法、标准的字符编码资料外,联盟官方出版品还包含了关于各书写系统的细节及呈现方式,如规范化的准则、拆分、测序、绘制、双向文本显示、书写方向、字符特性(如大小写字母)等等。此外还提供参考资料和视觉图像,以帮助开发者和设计师正确应用标准。

Unicode 备受认可,为 ISO 纳入国际标准,成为通用字符集,即 ISO/IEC 10646。Unicode 兼容 ISO/IEC 10646,能完整对应各个版本标准。Unicode 广泛应用于电脑软件的国际化与本地化过程。很多新科技,如可扩展置标语言(Extensible Markup Language,简称:XML)、Java 编程语言以及现代操作系统,都采用 Unicode 来编码。Unicode 最普遍的编码格式是和 ASCII 兼容的 UTF-8,以及和 UCS-2 兼容的 UTF-16。

起源与发展

Unicode 为解决传统字符编码方案的局限而产生,例如 ISO 8859-1 所定义的字符虽然在不同的国家中广泛地使用,可是在不同国家间却经常出现不兼容的情况。很多传统的编码方式都有共同的问题,即容许电脑处理双语环境(通常使用拉丁字母以及其本地语言),但却无法同时支持多语言环境(指可同时处理多种语言混合的情况)。

Unicode 编码包含了不同写法的字,如" ɑa"、"強/强"、"戶/户/戸"。然而在汉字方面引起了一字多形的认定争议,详见中日韩统一表意文字。

在文字处理方面,统一码为每一个字符而非字形定义唯一的代码(即一个整数)。换句话说,统一码以一种抽象的方式(即数字)来处理字符,并将视觉上的演绎工作(例如字体大小、外观形状、字体形态、文体等)留给其他软件来处理,例如网页浏览器或是文字处理器。

目前,几乎所有电脑系统都支持基本拉丁字母,并各自支持不同的其他编码方式。Unicode 为了和它们相互兼容,其首 256 个字符保留给 ISO 8859-1 所定义的字符,使既有的西欧语系文字的转换不需特别考量;并且把大量相同的字符重复编到不同的字符码中去,使得旧有纷杂的编码方式得以和 Unicode 编码间互相直接转换,而不会丢失任何信息。举例来说,全角格式区段包含了主要的拉丁字母的全角格式,在中文、日文、以及韩文字形当中,这些字符以全角的方式来呈现,而不以常见的半角形式显示,这对竖排文字和等宽排列文字有重要作用。

在表示一个 Unicode 的字符时,通常会用"U+"然后紧接着一组十六进制的数字来表示这一个字符。在基本多文种平面里的所有字符,要用四个数字(即 2 字节,共 16 位,例如 U+4AE0,共支持六万多个字符);在零号平面以外的字符则需要使用五或六个数字。旧版的 Unicode 标准使用相近的标记方法,但却有些微小差异:在 Unicode 3.0 里使用"U-"然后紧接着八个数字,而 "U+" 则必须随后紧接着四个数字。

标准

位于美国加州的 Unicode 组织允许任何愿意支付会费的公司和个人加入,其成员包含了主要的电脑软硬件厂商,例如 Adobe 系统、苹果公司、惠普、IBM、微软、施乐等。

20 世纪 80 年代末,组成 Unicode 组织的商业机构,和国际合作的国际标准化组织在电脑普及和信息国际化的前提下,分别各自成立了 Unicode 组织和 ISO-10646 工作小组。他们不久便发现对方的存在,而大家工作目的一致。1991 年,Unicode Consortium 与 ISO/IEC JTC1/SC2 同意保持 Unicode 码表与 ISO 10646 标准保持兼容并密切协调各自标准进一步的扩展。虽然实际上两者的字集编码相同,但本质上两者确为不同的标准。Unicode 1.1 对应于 ISO 10646-1:1993,Unicode 3.0 对应于 ISO 10646-1:2000,Unicode 3.2 对应于 ISO 10646-2:2001,Unicode 4.0 对应于 ISO 10646:2003,Unicode 5.0 对应于 ISO 10646:2003 及附录 1–3。

Unicode 自 2.0 版本开始保持了向后兼容,即新的版本仅仅增加字符,原有字符不会删除或更名。但从 Unicode 14.0 起,既有的区段可扩展或缩减,第一个扩展的既有区段为阿洪姆文(Ahom)。

统一码联盟在 1991 年首次发布了 The Unicode Standard。Unicode 的开发结合了国际标准化组织所制定的 ISO/IEC 10646,即通用字符集。Unicode 与 ISO/IEC 10646 在编码的运作原理相同,但 The Unicode Standard 包含了更详尽的实现信息、涵盖了更细节的主题,诸如比特编码(bitwise encoding)、校对以及呈现等。 The Unicode Standard 也枚举了诸多的字符特性,例如必须支持两种阅读方向的字符(由左至右或由右至左的文字阅读方向,例如阿拉伯文是由右至左)。Unicode 与 ISO/IEC 10646 两个标准在术语上的使用有些微的不同。

Unicode 的第十万个字符(用于马拉雅拉姆语)于 2005 年引入标准。

历史

截至目前的 Unicode 各版本及其发布时间如下:

其中,因应 2019 冠状病毒病疫情,Unicode 14.0 由 2021 年 3 月延后至 2021 年 9 月发布。

Unicode 版本
版本发布日期书籍对应 ISO/IEC 10646 版本文字数字符数
总计 [注 1]已知的扩增
1.0.01991 年 10 月ISBN 0-201-56788-1(Vol. 1)247,161最初包含的文字有:阿拉伯字母、亚美尼亚字母、孟加拉文、注音符号、西里尔字母、天城文、格鲁吉亚字母、希腊字母、古吉拉特文、古木基文、谚文、希伯来字母、平假名、卡纳达文、片假名、寮文字、拉丁字母、马拉雅拉姆文、奥里亚文、泰米尔文、泰卢固文、泰文字与藏文。
1.0.11992 年 6 月ISBN 0-201-60845-6(Vol. 2)2528,359定义中日韩统一表意文字最初的 20,902 个字。
1.11993 年 6 月ISO/IEC 10646-1:19932434,233于原有 2,350 个谚文字母的基础上新增 4,306 个谚文字母。移除藏文。
2.01996 年 7 月ISBN 0-201-48345-9ISO/IEC 10646-1:1993 与其第 5-7 修订版2538,950移除原有的谚文字母设置,于新的编码范围更换成 11,172 个新的谚文字母。藏文重新加入,但编码位置更换。代理字符机制建立,并将第 15 与第 16 平面分配给私人使用区。
2.11998 年 5 月ISO/IEC 10646-1:1993 与其第 5-7 修订版,以及第 18 修订版中新增的 2 个字符2538,952新增欧元符号与对象替换字符。
3.01999 年 9 月ISBN 0-201-61633-5ISO/IEC 10646-1:20003849,259新增切罗基文、吉兹字母、高棉字母、蒙古字母、缅文、欧甘字母、卢恩字母、僧伽罗文、叙利亚字母、它拿字母、加拿大原住民音节文字和彝文,以及部分盲文图案。
3.12001 年 3 月ISO/IEC 10646-1:2000

ISO/IEC 10646-2:2001

4194,205新增德瑟雷特字母(英:Deseret alphabet)、哥特字母、古意大利字母、音乐符号和拜占庭音乐符号,增加了 42711 个中日韩统一表意文字(CJK-B)。
3.22002 年 3 月ISO/IEC 10646-1:2000 与其第 1 修订版

ISO/IEC 10646-2:2001

4595,221新增菲律宾文字布锡文、哈努诺文、他加禄文、塔格巴奴亚文。
4.02003 年 4 月ISBN 0-321-18578-1ISO/IEC 10646:20035296,447新增塞浦路斯音节文字、林布字母、线形文字 B、奥斯曼亚字母、萧伯纳字母、德宏傣文、乌加里特字母以及六十四卦。
4.12005 年 3 月ISO/IEC 10646:2003 与其第 1 修订版5997,720新增布吉文、格拉哥里字母、佉卢文、西双版纳傣文、古波斯文、锡尔赫特文和提非纳文。科普特字母从希腊文区块分离。新增了古希腊音乐符号。
5.02006 年 7 月ISBN 0-321-48091-0ISO/IEC 10646:2003 与其第 1、2 修订版,以及第 3 修订版中新增的 4 个字符6499,089新增巴厘文、楔形文字、西非书面文字、八思巴文和腓尼基字母。
5.12008 年 4 月ISO/IEC 10646:2003 与其第 1-4 修订版75100,713新增卡利亚文、占婆字母、克耶黎文、绒巴文、利西亚文、吕底亚文、桑塔利文、拉让文、索拉什特拉文、巽他文和瓦伊文。同时增加了斐斯托斯圆盘、麻将和多米诺骨牌符号。对缅甸文做了重要的补充,追加了手抄缩写的额外字母,追加了大写ẞ。
5.22009 年 10 月ISBN 978-1-936213-00-9ISO/IEC 10646:2003 与其第 1-6 修订版90107,361新增阿维斯陀文、巴姆穆文字、埃及象形文字(加汀纳符号表,涵盖 1071 个符号)、亚拉姆文、巴拉维碑铭体、帕提亚碑铭体、爪哇文、凯提文、老傈僳文、曼尼普尔文、南阿拉伯字母、古突厥文、撒玛利亚字母、老傣文和傣越文。追加 4,149 个中日韩统一表意文字(CJK-C),同时扩展了古韩文和吠陀梵文的字符。
6.02010 年 10 月ISBN 978-1-936213-01-6ISO/IEC 10646:2010 与印度卢比符号93109,449新增巴塔克字母、婆罗米文字、曼达字母、纸牌符号、交通标志、地图符号、炼金术符号、颜文字和绘文字。追加 222 个额外的中日韩统一表意文字(CJK-D)。
6.12012 年 1 月ISBN 978-1-936213-02-3ISO/IEC 10646:2012100110,181新增查克马字母、麦罗埃文、麦罗埃象形文字、柏格理苗文、夏拉达文、索拉僧平文字和泰克里文。
6.22012 年 9 月ISBN 978-1-936213-07-8ISO/IEC 10646:2012 与土耳其里拉符号100110,182土耳其里拉符号。
6.32013 年 9 月ISBN 978-1-936213-08-5ISO/IEC 10646:2012 与 6 个字符100110,1875 个双向排版符号。
7.02014 年 6 月ISBN 978-1-936213-09-2ISO/IEC 10646:2012 与其第 1、2 修订版,以及俄罗斯卢布符号123113,021新增巴萨字母、高加索阿尔巴尼亚字母、杜普雷严速记、爱尔巴桑字母、古兰塔文、可吉文、库达瓦迪文、线形文字 A、马哈佳尼文、摩尼教字母、门得文字、莫迪字母、默文、纳巴泰字母、古北阿拉伯文、古彼尔姆文、杨松录苗文、帕米拉文字、袍清豪文、诗篇巴列维文、悉昙文字、底罗仆多文、瓦兰齐地文以及装饰符号。
8.02015 年 6 月ISBN 978-1-936213-10-8ISO/IEC 10646:2014 与其第 1 修订版,以及乔治亚拉里符号、9 个中日韩统一表意文字与 41 个颜文字129120,737增加阿洪姆文、安纳托利亚象形文字、哈坦文、穆尔塔尼文、古匈牙利字母、萨顿手语谱写、5,771 个中日韩统一表意文字字符(CJK-E)、切罗基文小写字母,以及五种绘文字肤色修改字符。
9.02016 年 6 月ISBN 978-1-936213-13-9ISO/IEC 10646:2014 与其第 1、2 修订版,阿德拉姆字母、尼泊尔纽瓦字母、日本电视符号和 74 个绘文字表情与符号。135128,237新增阿德拉姆字母、比奇舒奇文、象雄文、尼泊尔纽瓦字母、欧塞奇字母、西夏文以及 74 个绘文字
10.02017 年 6 月ISBN 978-1-936213-16-0ISO/IEC 10646:2017,新增 56 个绘文字符号、385 个变体假名字符,和 3 个札那巴札尔字符139136,755札那巴札尔、索永布文字、马萨拉姆贡德文字、女书、变体假名(非标准平假名)、7,494 个中日韩统一表意文字字符(CJK-F)与 56 个绘文字
11.02018 年 6 月ISBN 978-1-936213-19-1ISO/IEC 10646:2017 与其第 1 修订版,新增 145 个绘文字符号、5 个急用汉字,copyleft 符号、中国象棋符号等146137,374多格拉文、格鲁吉亚文骑士体大写字母、贡贾拉贡德文、哈乃斐罗兴亚文字、望加锡文、梅德法伊德林文、老粟特字母、粟特字母以及 145 个绘文字
12.02019 年 3 月ISBN 978-1-936213-22-1ISO/IEC 10646:2017 与其第 1、2 修订版,新增 61 个绘文字符号、一些方言苗文字符、古日文用小型日文假名、泰米尔文的符号、圣书体控制字符等150137,928埃利迈文、南迪城文、创世纪苗文、文乔文以及 61 个绘文字
12.12019 年 5 月ISBN 978-1-936213-25-2150137,929只在 U+32FF 新增了一个字符,即日本新年号令和的合字。
13.02020 年 3 月ISBN 978-1-936213-26-9ISO/IEC 10646:2020154143,924花剌子模语、迪维西语的岛字母(英语: Dhives akuru ) 、契丹小字、库尔德语字母的雅兹迪文、4969 个中日韩统一表意文字(4939 个位于扩展区 G(CJK-G))、书写豪萨语用的阿拉伯附加字母、沃洛夫语、其他非洲语言、在巴基斯坦书写 印德科语 (英语 : Hindko ) 和旁遮普语的补充字符、粤语用的注音符号、共享创意授权符号、1970 年代和 1980 年代电讯用图符、55 个绘文字
14.02021 年 9 月ISBN 978-1-936213-29-0159144,697
  • 托托文,用于在印度东北部书写托托语
  • 塞浦路斯-米诺斯文字,一种未破译的历史文字,主要用于塞浦路斯岛
  • 维斯库奇文,一种用于书写阿尔巴尼亚语的历史文字,正在经历现代复兴
  • 回鹘字母,一种历史上在中亚和其他地方用于书写突厥语、汉语、蒙古语、藏语和阿拉伯语的文字
  • 唐萨文,一种现代文字,用于书写在印度和缅甸使用的唐萨语
  • 位于第一辅助平面的拉丁文扩展区段(扩展 F 和 G)增加了许多扩展 IPA 字母 ,和许多用于拉丁语及阿拉伯文字的补充字母,这些字母用于非洲和伊朗、巴基斯坦、马来西亚、印度尼西亚、爪哇和波斯尼亚书写语言,以及书写敬语,以及为《古兰经》使用的补充。
  • 其它的一些字符添加支持北美和菲律宾、印度和蒙古的语言的文字
  • 追加 9 个额外的中日韩统一表意文字(基本多文种平面、第二辅助平面)。
15.02022 年 9 月ISBN 978-1-936213-29-0161149,186卡维文和蒙达里字母、4,192 个中日韩统一表意文字字符(CJK-H)、用于埃及象形文字的控制字符以及 20 个绘文字。

Unicode 的编码和实现

大概来说,Unicode 编码系统可分为编码方式和实现方式两个层次。

十大设计原则

《The Unicode Standard Version 6.2 – Core Specification》 文档给出了 Unicode 的十大设计原则:

  • Universality:提供单一、综合的字符集,编码一切现代与大部分历史文献的字符。
  • Efficiency:易于处理与分析。
  • Characters, not glyphs:字符,而不是字形。
  • Semantics:字符要有良好定义的语义。
  • Plain text:仅限于文本字符。
  • Logical order:默认内存表示是其逻辑序。
  • Unification:把不同语言的同一书写系统(scripts)中相同字符统一起来。
  • Dynamic composition:附加符号可以动态组合。
  • Stability:已分配的字符与语义不再改变。
  • Convertibility:Unicode 与其他著名字符集可以精确转换。

编码方式

统一码的编码方式与 ISO 10646 的通用字符集概念相对应。目前实际应用的统一码版本对应于 UCS-2,使用 16 位的编码空间。也就是每个字符占用 2 个字节。这样理论上一共最多可以表示 2(即 65536)个字符。基本满足各种语言的使用。实际上当前版本的统一码并未完全使用这 16 位编码,而是保留了大量空间以作为特殊使用或将来扩展。

上述 16 位统一码字符构成基本多文种平面。最新(但未实际广泛使用)的统一码版本定义了 16 个辅助平面,两者合起来至少需要占据 21 位的编码空间,比 3 字节略少。但事实上辅助平面字符仍然占用 4 字节编码空间,与 UCS-4 保持一致。未来版本会扩充到 ISO 10646-1 实现级别 3,即涵盖 UCS-4 的所有字符。UCS-4 是更大而尚未填充完全的 31 位字符集,加上恒为 0 的首位,共需占据 32 位,即 4 字节。理论上最多能表示 2 个字符,完全可以涵盖一切语言所用的符号。

基本多文种平面的字符的编码为 U+hhhh,其中每个 h 代表一个十六进制数字,与 UCS-2 编码完全相同。而其对应的 4 字节 UCS-4 编码后两个字节一致,前两个字节则所有位均为 0。

实现方式

Unicode 的实现方式不同于编码方式。一个字符的 Unicode 编码确定。但是在实际传输过程中,由于不同系统平台的设计不一定一致,以及出于节省空间的目的,对 Unicode 编码的实现方式有所不同。Unicode 的实现方式称为 Unicode 转换格式(Unicode Transformation Format,简称为 UTF)。

例如,如果一个仅包含基本 7 位 ASCII 字符的 Unicode 文件,如果每个字符都使用 2 字节的原 Unicode 编码传输,其第一字节的 8 位始终为 0。这就造成了比较大的浪费。对于这种情况,可以使用 UTF-8 编码,这是变长编码,它将基本 7 位 ASCII 字符仍用 7 位编码表示,占用一个字节(首位补 0)。而遇到与其他 Unicode 字符混合的情况,将按一定算法转换,每个字符使用 1-3 个字节编码,并利用首位为 0 或 1 识别。这样对以 7 位 ASCII 字符为主的西文文档就大幅节省了编码长度(具体方案参见 UTF-8)。类似的,对未来会出现的需要 4 个字节的辅助平面字符和其他 UCS-4 扩充字符,2 字节编码的 UTF-16 也需要通过一定的算法转换。

再如,如果直接使用与 Unicode 编码一致(仅限于 BMP 字符)的 UTF-16 编码,由于每个字符占用了两个字节,在麦金塔电脑(Mac)机和个人电脑上,对字节顺序的理解不一致。这时同一字节流可能会解释为不同内容,如某字符为十六进制编码 4E59,按两个字节拆分为 4E 和 59,在 Mac 上读取时是从低字节开始,那么在 Mac OS 会认为此 4E59 编码为 594E,找到的字符为"奎",而在 Windows 上从高字节开始读取,则编码为 U+4E59 的字符为"乙"。就是说在 Windows 下以 UTF-16 编码保存一个字符"乙",在 Mac OS 环境下开启会显示成"奎"。此类情况说明 UTF-16 的编码顺序若不加以人为定义就可能发生混淆,于是在 UTF-16 编码实现方式中使用了大端序(Big-Endian,简写为 UTF-16 BE)、小端序(Little-Endian,简写为 UTF-16 LE)的概念,以及可附加的字节顺序记号解决方案,目前在个人电脑上的 Windows 系统和 Linux 系统对于 UTF-16 编码默认使用 UTF-16 LE。(具体方案参见 UTF-16)

此外 Unicode 的实现方式还包括 UTF-7、Punycode、CESU-8、SCSU、UTF-32、GB18030 等,这些实现方式有些仅在一定的国家和地区使用,有些则属于未来的规划方式。目前通用的实现方式是 UTF-16 小端序(LE)、UTF-16 大端序(BE)和 UTF-8。在微软公司 Windows XP 附带的记事本(Notepad)中,"另存为"对话框可以选择的四种编码方式除去非 Unicode 编码的 ANSI(对于英文系统即 ASCII 编码,中文系统则为 GB2312 或 Big5 编码)外,其余三种为"Unicode"(对应 UTF-16 LE)、"Unicode big endian"(对应 UTF-16 BE)和"UTF-8"。

目前辅助平面的工作主要集中在第二和第三平面的中日韩统一表意文字,因此包括 GBK、GB18030、Big5 等简体中文、繁体中文、日文、韩文以及越南喃字的各种编码与 Unicode 的协调性受重点关注。考虑到 Unicode 最终要涵盖所有的字符。从某种意义而言,这些编码方式也可视作 Unicode 的出现于其之前的 既成事实的实现方式,如同 ASCII 及其扩展 Latin-1 一样,后两者的字符在 16 位 Unicode 编码空间中的编码第一字节各位全为 0,第二字节编码与原编码完全一致。但上述东亚语言编码与 Unicode 编码的对应关系要复杂得多。

Unicode 字符平面映射

Unicode 将编码空间分成 17 个平面,以 0 到 16 编号。

第 0 平面(或者说基本多文种平面)中的码点,都可以用一个 UTF-16 单位来编码,或者以 UTF-8 来编码的话,会使用一、二或三个字节。而第 1 到 16 平面(或称辅助平面)中的码点,UTF-16 会以代理对的方式来使用,而 UTF-8 则会编码成 4 个字节。

在每个平面中,会先将相关的字符集结为区段的形式。虽然区段可以是任意大小,但会以 16 个码点的倍数,且通常是 128 个码点的倍数。而一份文稿中使用到的区段,可能会散布在多个区段中。

非 Unicode 环境

在非 Unicode 环境下,由于不同国家和地区采用的字符集不一致,很可能出现无法正常显示所有字符的情况。微软公司使用了代码页(Codepage)转换表的技术来过渡性地部分解决这一问题,即通过指定的转换表将非 Unicode 的字符编码转换为同一字符对应的系统内部使用的 Unicode 编码。可以在"语言与区域设置"中选择一个代码页作为非 Unicode 编码所采用的默认编码方式,如 936 为简体中文 GB 码,950 为繁体中文 Big5(皆指 PC 上使用的)。在这种情况下,一些非英语的欧洲语言编写的软件和文档很可能出现乱码。而将代码页设置为相应语言中文处理又会出现问题,这一情况无法避免。只有完全采用统一编码才能彻底解决这些问题,但目前尚无法做到这一点。

代码页技术现在广泛为各种平台所采用。UTF-7 的代码页是 65000,UTF-8 的代码页是 65001。

XML 和 Unicode

XML 及其子集 XHTML 采用 UTF-8 作为标准字符集,理论上我们可以在各种支持 XML 标准的浏览器上显示任何地区文字的网页,只要电脑本身安装有合适的字体即可。可以利用 &#nnn;的格式显示特定的字符。 nnn代表该字符的十进制 Unicode 代码。如果采用十六进制代码,在编码之前加上 x字符即可。但部分旧版本的浏览器可能无法识别十六进制代码。

过去电脑编码的 8 位标准,使每个国家都只按国家使用的字符而编定各自的编码系统;而对于部分字符系统比较复杂的语言,如越南语,又或者东亚国家的大型字符集,都不能在 8 位的环境下正常显示。 只是最近才有在文本中对十六进制的支持,那么旧版本的浏览器显示那些字符或许可能有问题——大概首先会遇到的问题只是在对于大于 8 位 Unicode 字符的显示。解决这个问题的普遍做法仍然是将其中的十六进制码转换成一个十进制码(例如: ♠代替 ♠)。

也有一些字符集标准将一些常用的标志存放在字符内码外面,那么你可能使用像 这样的文本标志来表示一个长划(—)的情况,即使它的字符内码已经使用,这些标准也不包含那个字符。

然而部分由于 Unicode 版本发展原因,很多浏览器只能显示 UCS-2 完整字符集,也即现在使用的 Unicode 版本中的一个小子集。下表可以检验您的浏览器如何显示各种 Unicode 代码:

代码字符标准名称(英语)在浏览器上的显示
A大写拉丁字母"A"A
ß小写拉丁字母"Sharp S"ß
þ小写拉丁字母"Thorn"þ
Δ大写希腊字母"Delta"Δ
Й大写斯拉夫字母"Short I"Й
ק希伯来字母"Qof"ק
م阿拉伯字母"Meem"م
๗泰文数字 7
ቐ埃塞俄比亚音节文字"Qha"
あ日语平假名"A"
ア日语片假名"A"
叶简体汉字"叶"
葉繁体汉字"葉"
엽韩国音节文字"Yeop"

一些多语言支持的网页浏览器,比如 Microsoft Windows 系统的 Internet Explorer 5.5 及以上版本,以及跨平台的浏览器 Mozilla/Netscape 6,可以在安装时根据需要动态地使用相应的字符集,预先安装了合适的语言包,就可以同时显示页面上的各种 Unicode 字符。Internet Explorer 5.5 还提出用户可以在需要新字体时,即装即用。另外的浏览器如 Netscape Navigator 4.77,则只能显示跟页面编码相应字符集中的文字。当你使用后一种浏览器时,你不大可能预先安装所有的字体,即使有了字体,浏览器也不一定能将这些字体完全应用起来。可能遇到的情况是,这种浏览器只能够显示部分文字,因为它们是按照标准编码,尽管理论上在兼容的系统中,只要有了相应的 Code2000 字体,就可以正确显示。一种变通的办法,是将某些少见的字符,通过"名称实体引用"的方式来使用。

输入方法

不同的操作系统,各有直接输入 Unicode 字符的方法:

  • 基于 X Window System 的 Linux 系统,如 Ubuntu 的 Gnome Terminal,首先按下 Ctrl +Shift+U,然后输入 16 进制 Unicode 数,如 interpunct 间隔符输入 0 0 b 7,最后按空格键;
  • Microsoft Windows 系统,按下 Alt + 0 1 8 3 表示 interpunct 间隔符。

在 SGML、HTML、XML 的文本中,使用字符值引用或字符实体引用表示一个 Unicode 字符。

中文输入法

截至 2011 年 10 月,可以使用微软拼音 2003 或 2007 版本、仓颉输入法第三代第五代第六代版本、郑码 Unicode 版本、海峰五笔 9.3 版本、新注音输入法和 VimIM 输入。

  • 微软拼音在输入法启动状态下,单击语言栏上的"功能菜单"按钮,指向"辅助输入法"即可发现"Unicode 码输入方式",利用它可以直接输入 Unicode 相应十六进制值的方式输入相应文字。例如中文"胥"输入"5066",朝鲜文字"셅"输入"c145"(不需要在前面加 0x 或 x)。新版本下也可以输入 VUC(大小写不敏感)再输入编码。
  • 仓颉输入法已为 Unicode 汉字、类汉字编码,可以在仓颉输入法方式下通过仓颉码输入方式输入 Unicode 内的中日韩汉字及韩文。以仓颉输入法第五代为例,例如汉字"㗎"输入"口大口木",汉字"胥"输入"弓人月",汉字"㿱"输入"手中木竹水",朝鲜文字"닮"输入"尸卜尸女口"。由于朱邦复工作室使用的仓颉系统收字比 Unicode 还多,目前 Unicode 既有汉字皆已有仓颉编码。
  • 郑码已为 Unicode 汉字、类汉字编码,可以在郑码输入法方式下通过郑码字码输入方式输入 Unicode 内的中日韩汉字及韩文。例如汉字"㗎"输入"JYJF",汉字"胥"输入"XIQ",汉字"㿱"输入"DPXI",朝鲜文字"길"输入"XIYY"。
  • 海峰五笔此输入法已经直接支持透过五笔码输入方式输入 Unicode 内的任意中日韩汉字,但无法使用键入 Unicode 码的方式输入。例如汉字(Unicode 部分)"㗎"为"keks",CJK 扩展 B 区的"��"为"iyho"和 CJK 扩展 C 区的"𫆦"为"muih"。
  • 新注音输入法在输入法启动状态时,打入键盘上的"多功能前导字符键"(即通用键盘上之"`"),第一次使用会弹出说明。输入 Unicode 字符"胥"则是在键盘上键入"`U5066"。而韩语中的"셅",则输入"`UC145"。而要输入日语自制汉字"峠",则是"`U5CE0"。
  • VimIM 在 Vim 环境中,可以直接键入十进制或十六进制 Unicode 码。既不需要启动输入法,也不需要码表。
  • 呒虾米输入法,支持 Unicode,以 26 个英文字母为组字按键,可直接输入符号、日文汉字及平假名、片假名,但汉字部分一般只支持基本繁体中文、简体中文,扩展 A 区的汉字要另行扩展编码才能输入,扩展 B 区的汉字尚无编码。

日文输入法

使用 Microsoft IME 2007,可以在 IME Pad 找到 Unicode 的点击表。点击字符即可输入。选择字体可以预览字符效果。

其他

除了输入法外,操作系统也会提供另外几种方法输入 Unicode。像是 Windows 2000 之后的 Windows 系统就提供可点击的字符映射表。又或者在 Microsoft Word 下,按下 Alt 键不放,使用数字键盘输入 0 和某个字符的 Unicode 编码(十进制),再松开 Alt 键即可得到该字符,如 Alt 0 3 3 8 6 5 会得到 Unicode 字符 。另外,按 Alt X 组合键,Microsoft Word 也会将光标前面的字符同其十六进制的四位 Unicode 编码互相转换。