![本页使用了标题或全文手工转换 本页使用了标题或全文手工转换](http://web.archive.org./web/20200220193018im_/https://upload.wikimedia.org/wikipedia/commons/thumb/c/cd/Zh_conversion_icon_m.svg/35px-Zh_conversion_icon_m.svg.png)
Unicode
Unicode(中文:萬國碼、國際碼、統一碼、單一碼)是電腦科學領域裡的一項業界標準。它对世界上大部分的文字系統進行了整理、編碼,使得電腦可以用更為簡單的方式來呈現和處理文字。
Unicode 伴隨著通用字符集的標準而發展,同時也以書本的形式[1]對外發表。Unicode 至今仍在不斷增修,每個新版本都加入更多新的字符。目前最新的版本為2019年5月公布的12.1.0[2],已經收錄超過13萬個字符(第十萬個字符在2005年獲採納)。Unicode涵蓋的資料除了視覺上的字形、編碼方法、標準的字符編碼外,還包含了字符特性,如大小寫字母。
Unicode發展由非營利機構統一碼聯盟負責,該機構致力於讓 Unicode 方案取代既有的字符編碼方案。因為既有的方案往往空間非常有限,亦不適用於多語環境。
Unicode備受認可,並廣泛地應用於電腦软件的國際化與本地化過程。有很多新科技,如可扩展置标语言(Extensible Markup Language,簡稱:XML)、Java程式語言以及現代的作業系統,都採用Unicode編碼。
目录
起源與發展[编辑]
Unicode是為了解决傳統的字元編碼方案的侷限而產生的,例如ISO 8859-1所定義的字元雖然在不同的國家中廣泛地使用,可是在不同國家間卻經常出現不相容的情況。很多傳統的編碼方式都有一個共同的問題,即容許電腦處理雙語環境(通常使用拉丁字母以及其本地語言),但卻無法同時支援多語言環境(指可同時處理多種語言混合的情況)。
Unicode 编碼包含了不同寫法的字,如“ɑ/a”、“強/强”、“戶/户/戸”。然而在汉字方面引起了一字多形的認定爭議(詳見中日韓統一表意文字主題)。
在文字處理方面,統一碼為每一個字符而非字形定義唯一的代碼(即一個整數)。換句話說,統一碼以一種抽象的方式(即數字)來處理字符,並將視覺上的演繹工作(例如字體大小、外觀形狀、字體形態、文體等)留給其他軟件來處理,例如網頁瀏覽器或是文字處理器。
目前,幾乎所有電腦系統都支持基本拉丁字母,并各自支持不同的其他编碼方式。Unicode为了和它們相互兼容,其首 256 个字元保留給 ISO 8859-1 所定義的字元,使既有的西歐語系文字的轉換不需特別考量;并且把大量相同的字元重複編到不同的字元碼中去,使得舊有紛雜的編碼方式得以和Unicode編碼間互相直接轉換,而不會遺失任何資訊。舉例來說,全形格式區段包含了主要的拉丁字母的全形格式,在中文、日文、以及韓文字形當中,這些字元以全形的方式來呈現,而不以常見的半形形式顯示,這對豎排文字和等寬排列文字有重要作用。
在表示一個 Unicode 的字元時,通常會用「U+」然後緊接着一組十六進位的数字來表示這一個字元。在基本多文種平面(英語:Basic Multilingual Plane,簡寫 BMP。又稱為「零號平面」、plane 0)裏的所有字元,要用四个数字(即兩个byte,共16 bits,例如 U+4AE0,共支持六萬多個字符);在零號平面以外的字元則需要使用五个或六個數字。舊版的 Unicode 標準使用相近的標記方法,但卻有些微小差異:在 Unicode 3.0 裏使用「U-」然後緊接着八個數字,而「U+」則必須隨後緊接着四個數字。
標準[编辑]
位於美國加州的Unicode組織允許任何願意支付會費的公司和個人加入,其成員包含了主要的電腦軟硬體廠商,例如Adobe系統、蘋果公司、惠普、IBM、微軟、施乐等。
20世纪80年代末,組成 Unicode 組織的商業機構,和國際合作的國際標準化組織因為電腦普及和資訊國際化的前提下,分別各自成立了 Unicode 組織[3]和 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 開始保持了向後兼容,即新的版本僅僅增加字符,原有字符不會被删除或更名。
統一碼聯盟在 1991 年首次發佈了 The Unicode Standard。Unicode 的開發結合了國際標準化組織所制定的 ISO/IEC 10646,即通用字元集。Unicode 與 ISO/IEC 10646 在編碼的運作原理相同,但 The Unicode Standard 包含了更詳盡的實現資訊、涵蓋了更細節的主題,諸如位元編碼(bitwise encoding)、校對以及呈現等。The Unicode Standard 也列舉了諸多的字元特性,包含了那些必須支援兩種閱讀方向的文字(由左至右或由右至左的文字閱讀方向,例如阿拉伯文是由右至左)。Unicode 與 ISO/IEC 10646 這兩個標準在術語上的使用有些微的不同。
在 2005 年,Unicode 的第十萬個字元被引入成為標準之一,該字元被用於馬拉雅拉姆語。
历史[编辑]
截至目前的 Unicode 各版本及其發佈時間如下:
版本 | 發布日期 | 書籍 | 對應 ISO/IEC 10646 版本 | 文字數 | 字元數 | |
---|---|---|---|---|---|---|
總計[a] | 已知的擴增 | |||||
1.0.0 | 1991 年 10 月 | ISBN 0-201-56788-1(Vol. 1) | 24 | 7,161 | 最初包含的文字有:阿拉伯字母、亞美尼亞字母、孟加拉文、注音符號、西里爾字母、天城文、格鲁吉亚字母、希臘字母、古吉拉特文、古木基文、諺文、希伯來字母、平假名、卡納達文、片假名、寮文字、拉丁字母、馬拉雅拉姆文、奧里亞文、泰米爾文、泰盧固文、泰文字與藏文[4]。 | |
1.0.1 | 1992 年 6 月 | ISBN 0-201-60845-6(Vol. 2) | 25 | 28,359 | 定義中日韓統一表意文字最初的 20,902 個字[5]。 | |
1.1 | 1993 年 6 月 | ISO/IEC 10646-1:1993 | 24 | 34,233 | 於原有 2,350 個諺文字母的基礎上新增 4,306 個諺文字母。移除藏文[6]。 | |
2.0 | 1996 年 7 月 | ISBN 0-201-48345-9 | ISO/IEC 10646-1:1993 與其第 5-7 修訂版 | 25 | 38,950 | 移除原有的諺文字母設置,於新的編碼範圍更換成 11,172 個新的諺文字母。藏文重新加入,但編碼位置更換。代理字符機制建立,並將第 15 與第 16 平面分配給私人使用區[7]。 |
2.1 | 1998 年 5 月 | ISO/IEC 10646-1:1993 與其第 5-7 修訂版,以及第 18 修訂版中新增的 2 個字元 | 25 | 38,952 | 新增歐元符號與对象替换字符[8]。 | |
3.0 | 1999 年 9 月 | ISBN 0-201-61633-5 | ISO/IEC 10646-1:2000 | 38 | 49,259 | 新增切罗基文,埃塞俄比亚语,高棉语,蒙古语,缅甸语,歐甘字母,卢恩字母,僧伽罗语,叙利亚语,它拿字母,加拿大原住民音節文字和彝文,以及部分盲文图案。[9] |
3.1 | 2001 年 3 月 | ISO/IEC 10646-1:2000
ISO/IEC 10646-2:2001 |
41 | 94,205 | 新增犹他字母、哥特字母、古意大利字母、音乐符号和拜占庭音乐符号,追加了 42711 个中日韩统一表意文字(CJK-B)。[10] | |
3.2 | 2002 年 3 月 | ISO/IEC 10646-1:2000 與其第 1 修訂版
ISO/IEC 10646-2:2001 |
45 | 95,221 | 新增菲律宾文字布锡文、哈努诺文、他加禄语、塔格巴奴亚文。[11] | |
4.0 | 2003 年 4 月 | ISBN 0-321-18578-1 | ISO/IEC 10646:2003 | 52 | 96,447 | 新增塞浦路斯音节文字,林布字母,线形文字B,奥斯曼亚字母,萧伯纳字母,德宏傣文,乌加里特字母以及六十四卦。[12] |
4.1 | 2005 年 3 月 | ISO/IEC 10646:2003 與其第1修訂版 | 59 | 97,720 | 新增布吉文,格拉哥里字母,佉卢文,西双版纳傣文,古波斯语,锡尔赫特文和提非纳文 。科普特字母从希腊语区块中分离了出来。新增了古希腊音乐符号。[13] | |
5.0 | 2006 年 7 月 | ISBN 0-321-48091-0 | ISO/IEC 10646:2003 與其第 1、2 修訂版,以及第 3 修訂版中新增的 4 個字元 | 64 | 99,089 | 新增巴厘语,楔形文字,西非书面文字,八思巴文和腓尼基字母。[14] |
5.1 | 2008 年 4 月 | ISO/IEC 10646:2003 與其第 1-4 修訂版 | 75 | 100,713 | 新增卡利亚语,占婆字母,克耶黎语,绒巴文,利西亚语,吕底亚语,桑塔利文,拉让文,索拉什特拉文,巽他语和瓦伊语。同时增加了斐斯托斯圆盘,麻将和多米诺骨牌上的符号。对缅甸语做了重要的补充,追加了手抄缩写的额外字母,追加了大写ẞ。[15] | |
5.2 | 2009 年 10 月 | ISBN 978-1-936213-00-9 | ISO/IEC 10646:2003 與其第 1-6 修訂版 | 90 | 107,361 | 新增阿维斯陀语,巴姆穆文字,埃及象形文字 (加汀纳符号表,涵盖 1071 个符号),亚拉姆语,巴拉维碑铭体,帕提亚碑铭体,爪哇语,凯提文,老傈僳文,曼尼普尔文,南阿拉伯字母,古突厥语,撒玛利亚语,老傣文和傣越文。追加 4,149 个中日韩统一表意文字(CJK-C),同时扩展了古韩语和吠陀梵语的字符。[16] |
6.0 | 2010 年 10 月 | ISBN 978-1-936213-01-6 | ISO/IEC 10646:2010 與印度盧比符號 | 93 | 109,449 | 新增巴塔克字母,婆罗米文字,曼达字母,纸牌符号,交通标志,地图符号,炼金术符号,颜文字和绘文字。追加 222 个额外的中日韩统一表意文字(CJK-D)。[17] |
6.1 | 2012 年 1 月 | ISBN 978-1-936213-02-3 | ISO/IEC 10646:2012 | 100 | 110,181 | 新增查克马字母,麦罗埃文,麦罗埃象形文字,柏格理苗文,夏拉达文,索拉僧平文字和泰克里文。[18] |
6.2 | 2012 年 9 月 | ISBN 978-1-936213-07-8 | ISO/IEC 10646:2012 與土耳其里拉符號 | 100 | 110,182 | 土耳其里拉符號[19]。 |
6.3 | 2013 年 9 月 | ISBN 978-1-936213-08-5 | ISO/IEC 10646:2012 與 6 個字元 | 100 | 110,187 | 5 个双向排版符号。[20] |
7.0 | 2014 年 6 月 | ISBN 978-1-936213-09-2 | ISO/IEC 10646:2012 與其第 1、2 修訂版,以及俄羅斯盧布符號 | 123 | 113,021 | 新增巴萨字母,高加索阿尔巴尼亚字母,杜普雷嚴速記,爱尔巴桑字母,古兰塔文,可吉文,库达瓦迪文,线形文字A,马哈佳尼文,摩尼教字母,门得文字,莫迪字母,默文,纳巴泰字母,古北阿拉伯文,古彼尔姆文,杨松录苗文,帕米拉文字,袍清豪文,诗篇巴列维文,悉昙文字,提尔胡塔文,瓦兰齐地文以及装饰符号。[21] |
8.0 | 2015 年 6 月 | ISBN 978-1-936213-10-8 | ISO/IEC 10646:2014 與其第 1 修訂版,以及喬治亞拉里符號、9 個中日韓統一表意文字與 41 個表情符號[22] | 129 | 120,737 | 增加阿洪姆文,安纳托利亚象形文字,哈坦文,穆尔塔尼文,古匈牙利字母,书写符号,5,771 个中日韩统一表意文字字符(CJK-E),切罗基语小写字母,以及五种绘文字肤色修改字符。[23] |
9.0 | 2016 年 6 月 | ISBN 978-1-936213-13-9 | ISO/IEC 10646:2014 与其第 1、2 修订版,阿德拉姆字母、尼泊尔纽瓦字母、日本电视符号和 74 个绘文字表情与符号。[24] | 135 | 128,237 | 新增阿德拉姆字母,比奇舒奇文,象雄文,尼泊尔纽瓦字母,欧塞奇字母,西夏文以及 74 个绘文字[25] |
10.0 | 2017 年 6 月 | ISBN 978-1-936213-16-0 | ISO/IEC 10646:2017,新增 56 个绘文字符号,385 个變體假名字符,和 3 个札那巴札尔字符[26] | 139 | 136,755 | 札那巴札尔、索永布文字、马萨拉姆贡德文字、女书、變體假名(非标准平假名),7,494 个中日韓統一表意文字(CJK-F)与 56 个繪文字[27] |
11.0 | 2018 年 6 月 | ISBN 978-1-936213-19-1 | ISO/IEC 10646:2017與其第 1 修訂版,新增 145 个绘文字符号,5 个急用汉字,Copyleft 符号,中国象棋 符号等[28] | 146 | 137,374 | 多格拉文、格鲁吉亚文骑士体大写字母、贡贾拉贡德文、哈乃斐罗兴亚文字、望加锡文、梅德法伊德林文、老粟特文、粟特文以及 145 个绘文字[29] |
12.0 | 2019 年 3 月 | ISBN 978-1-936213-22-1 | ISO/IEC 10646:2017 與其第1、2修訂版,新增61个绘文字符号,一些方言苗文字符,古日语用小型日语假名,泰米尔文的符号,圣书体控制字符等[2] | 150 | 137,928 | 埃利邁文、南迪城文、創世紀苗文、文乔文以及 61 个绘文字[30] |
12.1 | 2019年5月 | 150 | 137,929 | 只在U+32FF新增了一個字符,即日本新年號令和的合字。[31] |
Unicode 的编码和实现[编辑]
大概来说,Unicode 编码系统可分为编码方式和实现方式两个层次。
10大设计原则[编辑]
《The Unicode Standard Version 6.2 – Core Specification》[32] 文档给出了 Unicode 的十大设计原则:
- Universality:提供单一、综合的字符集,编码一切现代与大部分历史文献的字符。
- Efficiency:易于处理与分析。
- Characters, not glyphs:字符,而不是字形。
- Semantics:字符要有良好定义的语义
- Plain text:仅限于文本字符
- Logical order:默认内存表示是其逻辑序
- Unification:把不同语言的同一书写系统(scripts)中相同字符统一起来。
- Dynamic composition:附加符号可以动态组合。
- Stability:已分配的字符与语义不再改变。
- Convertibility:Unicode 与其他著名字符集可以精确转换。
编码方式[编辑]
統一碼的编碼方式與 ISO 10646 的通用字符集概念相對應。目前实际应用的統一碼版本对应于 UCS-2,使用 16 位的编码空间。也就是每个字符占用 2 个字节。这样理论上一共最多可以表示 216(即 65536)个字符。基本满足各种语言的使用。实际上目前版本的統一碼並未完全使用这 16 位编码,而是保留了大量空间以作为特殊使用或将来扩展。
上述 16 位統一碼字符构成基本多文种平面。最新(但未实际廣泛使用)的統一碼版本定义了 16 个辅助平面,两者合起来至少需要占据 21 位的编码空间,比 3 字节略少。但事实上辅助平面字符仍然占用 4 字节编码空间,与 UCS-4 保持一致。未来版本会扩充到 ISO 10646-1 实现级别 3,即涵盖 UCS-4 的所有字符。UCS-4 是一个更大的尚未填充完全的 31 位字符集,加上恒为 0 的首位,共需占据 32 位,即 4 字节。理论上最多能表示 231个字符,完全可以涵盖一切语言所用的符号。
基本多文种平面的字符的编码为 U+hhhh,其中每个 h 代表一个十六进制数字,与 UCS-2 编码完全相同。而其对应的 4 字节 UCS-4 编码后两个字节一致,前两个字节則所有位均为 0。
关于統一碼和 ISO 10646 及 UCS 的详细关系,見通用字符集。
实现方式[编辑]
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)的概念,以及可附加的位元組順序記號解决方案,目前在 PC 机上的 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 环境[编辑]
在非 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” | 엽 |
一些多语言支持的网页浏览器,比如微软 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 间隔符输入00b7,最后按空格键;
- Microsoft Windows 系统,按下Alt+0183表示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 + 033865
會得到 Unicode 字元葉[來源請求]。另外按Alt + X
组合键,MS Word 也会将光标前面的字符同其十六进制的四位 Unicode 编码进行互相转换。
注釋[编辑]
- ^ The number of characters listed for each version of Unicode is the total number of graphic, format and control characters (i.e., excluding private-use characters, noncharacters and surrogate code points).
參考文獻[编辑]
- ^ The Unicode Standard 第五版. Addison-Wesley Professional. ISBN 0321480910.
- ^ 2.0 2.1 Unicode 12.0.0. Unicode Consortium. [2019-3-13].
- ^ Unicode
- ^ Unicode Data 1.0.0. [2010-03-16].
- ^ Unicode Data 1.0.1. [2010-03-16].
- ^ Unicode Data 1995. [2010-03-16].
- ^ Unicode Data-2.0.14. [2010-03-16].
- ^ Unicode Data-2.1.2. [2010-03-16].
- ^ Unicode Data-3.0.0. [2010-03-16].
- ^ Unicode Data-3.1.0. [2010-03-16].
- ^ Unicode Data-3.2.0. [2010-03-16].
- ^ Unicode Data-4.0.0. [2010-03-16].
- ^ Unicode Data. [2010-03-16].
- ^ Unicode Data 5.0.0. [2010-03-17].
- ^ Unicode Data 5.1.0. [2010-03-17].
- ^ Unicode Data 5.2.0. [2010-03-17].
- ^ Unicode Data 6.0.0. [2010-10-11].
- ^ Unicode Data 6.1.0. [2012-01-31].
- ^ Unicode Data 6.2.0. [2012-09-26].
- ^ Unicode Data 6.3.0. [2013-09-30].
- ^ Unicode Data 7.0.0. [2014-06-15].
- ^ Unicode 8.0.0. Unicode Consortium. [2015-06-17].
- ^ Unicode Data 8.0.0. [2015-06-17].
- ^ Unicode 9.0.0. Unicode Consortium. [2016-06-21].
- ^ Unicode Data 9.0.0. [2016-06-21].
- ^ Unicode 10.0.0. Unicode Consortium. [2017-06-20].
- ^ Unicode Data 10.0.0. [2017-06-20].
- ^ Unicode 11.0.0. Unicode Consortium. [2018-06-06].
- ^ Unicode Data 11.0.0. [2018-06-06].
- ^ Unicode Data 12.0.0. [2019-3-13].
- ^ Unicode Version 12.1 released in support of the Reiwa Era. blog.unicode.org. [2019-05-07].
- ^ The Unicode Standard, Version 6.2, 2012 Unicode, Inc. Chapter 2 General Structure 2.2 Unicode Design Principles
参见[编辑]
- Wikipedia:Unicode扩展汉字
- Unicode字符平面映射
- Unicode聯盟
- Unicode字符列表
- Unicode数字
- 中日韓統一表意文字(CJK / Unihan)
- 通用字符集
- 寬字元
- UTF-8
外部链接[编辑]
![]() |
維基教科書中的相關電子教程:Unicode编码表 |
- Unicode official site(Unicode官方網站)
- Unicode Consortium(Unicode聯盟)
- Unicode 7.0.0
- DecodeUnicode - Unicode WIKI,提供Unicode 6.0全部109,242個字的GIF字型預覽
- Alan Wood's Unicode Resources
- The International Phonetic Alphabet in Unicode(國際音標的Unicode编碼)
- CJK Compatibility Ideographs(中日韓兼容表意文字)
- Unicode character charts(Unicode字符映射表)
- UTF-8和Unicode的常見問題
- UTF-8 Codepage(UTF-8代碼頁)
- Unicode 11.0(Unicode 11.0字符汇总, pdf)
|
|
|
|