跳转到内容

Unicode

本页使用了标题或全文手工转换
维基百科,自由的百科全书
(重定向自統一碼
统一码
統一碼標誌
别名通用字符集 (UCS)
语言全球性
标准統一碼标准
编码格式UTF-8, UTF-16, GB18030
不常用:
UTF-32, BOCU, SCSU
已淘汰:
UTF-7
前用ISO/IEC 8859, 其他

Unicode,全稱為Unicode標準(The Unicode Standard),其官方機構Unicode聯盟所用的中文名称为統一碼[1],又译作萬國碼、統一字元碼、统一字符编码[2],是信息技术領域的業界標準,其整理、編碼了世界上大部分的文字系統,使得電腦能以通用劃一的字元集來處理和顯示文字,不但減輕在不同編碼系統間切換和轉換的困擾,更提供了一種跨平臺亂碼問題解決方案。Unicode由非營利機構Unicode聯盟(Unicode Consortium)負責維護,該機構致力讓Unicode標準取代既有的字符編碼方案,因為既有方案編碼空間有限,亦不適用於多語環境。

Unicode伴隨著通用字符集ISO/IEC 10646的標準而發展,同時也以書本的形式[3]對外發表。Unicode至今仍在不斷增修,每個新版本都加入更多新的字符。目前最新的版本為2024年9月公布的16.0.0[4],已經收錄超過15萬個字符(第十萬個字符在2005年獲採納)。Unicode標準不僅僅只是為文字指定代碼。除了涵蓋視覺上的字形、編碼方法、標準的字符編碼资料外,聯盟官方出版品還包含了關於各書寫系統的細節及呈現方式,如規格化的準則、拆分、定序繪製雙向文本顯示、书写方向、字符特性(如大小寫字母)等等。此外還提供參考資料和視覺圖像,以幫助開發者和設計師正確應用標準。

Unicode備受認可,為ISO納入国际标准,成為通用字符集,即 ISO/IEC 10646。Unicode兼容ISO/IEC 10646,能完整对应各个版本标准[5][6]。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組織[7]和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起,既有的區段可擴展或縮減(必須在沒有字符使用空間的前提下,若已有字符佔用空間不可縮減區段),第一個自Unicode 1.1以來擴展的既有區段為阿洪姆文(Ahom)。[8]

統一碼聯盟在1991年首次發佈了The Unicode Standard。Unicode的開發結合了國際標準化組織所制定的ISO/IEC 10646,即通用字符集。Unicode與ISO/IEC 10646在編碼的運作原理相同,但The Unicode Standard包含了更詳盡的實現資訊、涵蓋了更細節的主題,諸如位元編碼(bitwise encoding)、校對以及呈現等。The Unicode Standard也列舉了諸多的字元特性,例如必須支援兩種閱讀方向的字符(由左至右或由右至左的文字閱讀方向,例如阿拉伯文是由右至左)。Unicode與ISO/IEC 10646兩個標準在術語上的使用有些微的不同。[5]

Unicode的第十萬個字元(用於馬拉雅拉姆語)于2005年引入標準。

历史

[编辑]

截至目前的Unicode各版本及其發佈時間如下:

其中,因應2019冠狀病毒病疫情,Unicode 14.0由2021年3月延後至2021年9月发布[9]

Unicode版本
版本 發布日期 書籍 對應ISO/IEC 10646版本 文字數 字元數
總計[註 1] 已知的擴增
1.0.0 1991年10月 ISBN 0-201-56788-1(Vol. 1) 24 7,161 最初包含的文字有:阿拉伯字母亞美尼亞字母孟加拉文注音符號西里爾字母天城文格鲁吉亚字母希臘字母古吉拉特文古木基文諺文希伯來字母平假名卡納達文片假名寮文字拉丁字母馬拉雅拉姆文奧里亞文泰米爾文泰盧固文泰文字藏文[10]
1.0.1 1992年6月 ISBN 0-201-60845-6(Vol. 2) 25 28,359 定義中日韓統一表意文字最初的20,902個字[11]
1.1 1993年6月 ISO/IEC 10646-1:1993 24 34,233 於原有2,350個諺文字母的基礎上新增4,306個諺文字母。移除藏文[12]
2.0 1996年7月 ISBN 0-201-48345-9 ISO/IEC 10646-1:1993與其第5-7修訂版 25 38,950 移除原有的諺文字母設置,於新的編碼範圍更換成11,172個新的諺文字母。藏文重新加入,但編碼位置更換。代理字符機制建立,並將第15與第16平面分配給私人使用區[13]
2.1 1998年5月 ISO/IEC 10646-1:1993與其第5-7修訂版,以及第18修訂版中新增的2個字元 25 38,952 新增歐元符號对象替换字符[14]
3.0 1999年9月 ISBN 0-201-61633-5 ISO/IEC 10646-1:2000 38 49,259 新增切罗基文吉茲字母高棉字母蒙古字母緬文歐甘字母卢恩字母僧伽羅文叙利亚字母它拿字母加拿大原住民音節文字彝文,以及部分盲文图案。[15]
3.1 2001年3月 ISO/IEC 10646-1:2000

ISO/IEC 10646-2:2001

41 94,205 新增德瑟雷特字母英语Deseret alphabet哥特字母古意大利字母音乐符号拜占庭音乐符号,增加了42711个中日韩统一表意文字CJK-B)。[16]
3.2 2002年3月 ISO/IEC 10646-1:2000與其第1修訂版

ISO/IEC 10646-2:2001

45 95,221 新增菲律宾文字布锡文哈努诺文他加禄文塔格巴奴亚文[17]
4.0 2003年4月 ISBN 0-321-18578-1 ISO/IEC 10646:2003 52 96,447 新增塞浦路斯音节文字林布字母线形文字B奥斯曼亚字母萧伯纳字母德宏傣文乌加里特字母以及六十四卦[18]
4.1 2005年3月 ISO/IEC 10646:2003與其第1修訂版 59 97,720 新增布吉文格拉哥里字母佉卢文西双版纳傣文古波斯文锡尔赫特文提非纳文科普特字母希腊文区段分离。新增了古希腊音乐符号[19]
5.0 2006年7月 ISBN 0-321-48091-0 ISO/IEC 10646:2003與其第1、2修訂版,以及第3修訂版中新增的4個字元 64 99,089 新增巴厘文楔形文字西非书面文字八思巴文腓尼基字母[20]
5.1 2008年4月 ISO/IEC 10646:2003與其第1-4修訂版 75 100,713 新增卡利亚文占婆字母克耶黎文绒巴文利西亚文吕底亚文桑塔利文拉让文索拉什特拉文巽他文瓦伊文。同时增加了斐斯托斯圆盘麻将多米诺骨牌符号。对缅甸文做了重要的补充,追加了手抄缩写的额外字母,追加了大写ẞ[21]
5.2 2009年10月 ISBN 978-1-936213-00-9 ISO/IEC 10646:2003與其第1-6修訂版 90 107,361 新增阿维斯陀文巴姆穆文字埃及象形文字加汀纳符号表,涵盖1071个符号)、亚拉姆文巴拉维碑铭体帕提亚碑铭体爪哇文凯提文老傈僳文曼尼普尔文南阿拉伯字母古突厥文撒玛利亚字母老傣仂文傣越文。追加4,149个中日韩统一表意文字CJK-C),同时扩展了古韩文吠陀梵文的字符。[22]
6.0 2010年10月 ISBN 978-1-936213-01-6 ISO/IEC 10646:2010與印度盧比符號 93 109,449 新增巴塔克字母婆罗米文字曼达字母纸牌符号、交通标志地图符号、炼金术符号颜文字绘文字。追加222个额外的中日韩统一表意文字CJK-D)。[23]
6.1 2012年1月 ISBN 978-1-936213-02-3 ISO/IEC 10646:2012 100 110,181 新增查克马字母麦罗埃文麦罗埃象形文字柏格理苗文夏拉达文索拉僧平文字泰克里文[24]
6.2 2012年9月 ISBN 978-1-936213-07-8 ISO/IEC 10646:2012與土耳其里拉符號 100 110,182 土耳其里拉符號[25]
6.3 2013年9月 ISBN 978-1-936213-08-5 ISO/IEC 10646:2012與6個字元 100 110,187 5个双向排版符号。[26]
7.0 2014年6月 ISBN 978-1-936213-09-2 ISO/IEC 10646:2012與其第1、2修訂版,以及俄羅斯盧布符號 123 113,021 新增巴萨字母高加索阿尔巴尼亚字母杜普雷嚴速記爱尔巴桑字母古兰塔文可吉文库达瓦迪文线形文字A马哈佳尼文摩尼教字母门得文字莫迪字母默文纳巴泰字母古北阿拉伯文古彼尔姆文杨松录苗文帕米拉文字袍清豪文诗篇巴列维文悉昙文字底罗仆多文瓦兰齐地文以及装饰符号[27]
8.0 2015年6月 ISBN 978-1-936213-10-8 ISO/IEC 10646:2014與其第1修訂版,以及喬治亞拉里符號、9個中日韓統一表意文字與41個表情符號[28] 129 120,737 增加阿洪姆文安纳托利亚象形文字哈坦文穆尔塔尼文古匈牙利字母薩頓手語譜寫、5,771个中日韩统一表意文字字符(CJK-E)、切罗基文小写字母,以及五种绘文字肤色修改字符。[29]
9.0 2016年6月 ISBN 978-1-936213-13-9 ISO/IEC 10646:2014与其第1、2修订版,阿德拉姆字母、尼泊尔纽瓦字母、日本电视符号和74个绘文字表情与符号。[30] 135 128,237 新增阿德拉姆字母比奇舒奇文象雄文尼泊尔纽瓦字母欧塞奇字母西夏文以及74个绘文字[31]
10.0 2017年6月 ISBN 978-1-936213-16-0 ISO/IEC 10646:2017,新增56个绘文字符号、385个變體假名字符,和3个札那巴札尔字符[32] 139 136,755 札那巴札尔索永布文字马萨拉姆贡德文字女书變體假名(非标准平假名)、7,494个中日韓統一表意文字字符(CJK-F)与56个繪文字[33]
11.0 2018年6月 ISBN 978-1-936213-19-1 ISO/IEC 10646:2017與其第1修訂版,新增145个绘文字符号、5个急用汉字,copyleft符号、中国象棋符号等[34] 146 137,374 多格拉文格鲁吉亚文骑士体大写字母、贡贾拉贡德文哈乃斐罗兴亚文字望加锡文梅德法伊德林文老粟特字母粟特字母以及145个绘文字[35]
12.0 2019年3月 ISBN 978-1-936213-22-1 ISO/IEC 10646:2017與其第1、2修訂版,新增61个绘文字符号、一些方言苗文字符、古日文用小型日文假名泰米尔文的符号、圣书体控制字符等[36] 150 137,928 埃利邁文南迪城文創世紀苗文文乔文以及61个绘文字[37]
12.1 2019年5月 ISBN 978-1-936213-25-2 150 137,929 只在U+32FF新增了一個字符,即日本新年號令和的合字。[38]
13.0 2020年3月 ISBN 978-1-936213-26-9 ISO/IEC 10646:2020[39] 154 143,924 花剌子模语迪维西语島字母英语Dhives akuru契丹小字库尔德语字母雅茲迪文、4969個中日韓統一表意文字(4939個位於擴展區GCJK-G))、書寫豪萨语用的阿拉伯附加字母、沃洛夫語、其他非洲語言、在巴基斯坦書寫印德科語英语Hindko旁遮普語的補充字元、粵語用的注音符號共享創意授權符號、1970年代和1980年代電訊用圖符、55個繪文字[40]
14.0 2021年9月 ISBN 978-1-936213-29-0 159 144,697
  • 托托文,用于在印度东北部书写托托语
  • 塞普勒斯-米諾斯文字,一种未破译的历史文字,主要用于塞浦路斯岛
  • 維斯庫奇文,一种用于书写阿尔巴尼亚语的历史文字,正在经历现代复兴
  • 回鶻字母,一种历史上在中亚和其他地方用于书写突厥语、汉语、蒙古语、藏语和阿拉伯语的文字
  • 唐薩文,一种现代文字,用于书写在印度和缅甸使用的唐薩语
  • 位於第一輔助平面的拉丁文擴展區段(擴展F和G)增加了許多扩展IPA字母 ,和许多用於拉丁语及阿拉伯文字的补充字母,這些字母用於非洲和伊朗、巴基斯坦、马来西亚、印度尼西亚、爪哇和波斯尼亚书写语言,以及书写敬语,以及为《古兰经》使用的补充。
  • 其它的一些字符添加支持北美和菲律宾、印度和蒙古的语言的文字
  • 追加9个额外的中日韩统一表意文字(基本多文种平面、第二辅助平面)。[41]
15.0 2022年9月 ISBN 978-1-936213-29-0 166 149,186 卡維文蒙達里字母、4,192個中日韓統一表意文字字符(CJK-H)、用於埃及象形文字的控制字元以及20個繪文字。 [42]
15.1 2023年9月 ISBN 978-1-936213-29-0 167 149,813 622個中日韓統一表意文字字符(CJK-I)。 [43]
16.0 2024年9月 ISBN 978-1-936213-34-4 168 154,998

一共新增5,185個字元,分類如下:

Unicode的编码和实现

[编辑]

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

十大设计原则

[编辑]

《The Unicode Standard Version 6.2 – Core Specification》[44] 文档给出了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。

实现方式

[编辑]

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

目前辅助平面的工作主要集中在第二和第三平面的中日韩统一表意文字,因此包括GBKGB18030Big5简体中文繁体中文日文韩文以及越南喃字的各种编码与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字符的方法:

SGMLHTMLXML的文本中,使用字符值引用字符实体引用表示一个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键即可得到该字符,如Alt033865會得到Unicode字元。另外,按AltX组合键,Microsoft Word也会将光标前面的字符同其十六进制的四位Unicode编码互相转换。

注释

[编辑]
  1. ^ 下列的總計數是圖形、格式及控制字符的總數目,即不計算私人使用區、非字元及代理字符在內。

參考文獻

[编辑]
  1. ^ About Unicode Terminology. unicode.org. [2021-03-25]. (原始内容存档于2021-04-21). 
  2. ^ 陈冰. Flash第一步 ActionScript编程篇. 清华大学出版社有限公司. 2006: 373. ISBN 9787302124207. 
  3. ^ The Unicode Standard 第五版. Addison-Wesley Professional. 2007. ISBN 0321480910. 
  4. ^ 4.0 4.1 Announcing The Unicode® Standard, Version 16.0. blog.unicode.org. [2024-09-14]. (原始内容存档于2024-09-14). 
  5. ^ 5.0 5.1 Technical Introduction. www.unicode.org. [2021-10-03]. (原始内容存档于2022-04-23). 
  6. ^ FAQ - Unicode and ISO 10646. www.unicode.org. [2021-10-03]. (原始内容存档于2021-12-14). 
  7. ^ Unicode. [2004-04-02]. (原始内容存档于2018-03-19). 
  8. ^ BETA Unicode 14.0.0. www.unicode.org. [2021-09-20]. (原始内容存档于2021-10-23). 
  9. ^ Unicode, Inc. Unicode 14.0 Delayed for 6 Months. [2020-06-12]. (原始内容存档于2022-02-03). 
  10. ^ Unicode Data 1.0.0. [2010-03-16]. (原始内容存档于2012-06-30). 
  11. ^ Unicode Data 1.0.1. [2010-03-16]. (原始内容存档于2022-03-21). 
  12. ^ Unicode Data 1995. [2010-03-16]. (原始内容存档于2022-03-21). 
  13. ^ Unicode Data-2.0.14. [2010-03-16]. (原始内容存档于2022-03-21). 
  14. ^ Unicode Data-2.1.2. [2010-03-16]. (原始内容存档于2022-03-21). 
  15. ^ Unicode Data-3.0.0. [2010-03-16]. (原始内容存档于2022-03-21). 
  16. ^ Unicode Data-3.1.0. [2010-03-16]. (原始内容存档于2022-03-21). 
  17. ^ Unicode Data-3.2.0. [2010-03-16]. (原始内容存档于2022-03-21). 
  18. ^ Unicode Data-4.0.0. [2010-03-16]. (原始内容存档于2022-03-21). 
  19. ^ Unicode Data. [2010-03-16]. (原始内容存档于2022-03-21). 
  20. ^ Unicode Data 5.0.0. [2010-03-17]. (原始内容存档于2022-03-21). 
  21. ^ Unicode Data 5.1.0. [2010-03-17]. (原始内容存档于2022-04-19). 
  22. ^ Unicode Data 5.2.0. [2010-03-17]. (原始内容存档于2022-03-21). 
  23. ^ Unicode Data 6.0.0. [2010-10-11]. (原始内容存档于2022-03-21). 
  24. ^ Unicode Data 6.1.0. [2012-01-31]. (原始内容存档于2022-03-26). 
  25. ^ Unicode Data 6.2.0. [2012-09-26]. (原始内容存档于2022-03-26). 
  26. ^ Unicode Data 6.3.0. [2013-09-30]. (原始内容存档于2022-04-07). 
  27. ^ Unicode Data 7.0.0. [2014-06-15]. (原始内容存档于2022-04-07). 
  28. ^ Unicode 8.0.0. Unicode Consortium. [2015-06-17]. (原始内容存档于2016-06-28). 
  29. ^ Unicode Data 8.0.0. [2015-06-17]. (原始内容存档于2021-03-24). 
  30. ^ Unicode 9.0.0. Unicode Consortium. [2016-06-21]. (原始内容存档于2020-02-28). 
  31. ^ Unicode Data 9.0.0. [2016-06-21]. (原始内容存档于2022-04-07). 
  32. ^ Unicode 10.0.0. Unicode Consortium. [2017-06-20]. (原始内容存档于2017-06-20). 
  33. ^ Unicode Data 10.0.0. [2017-06-20]. (原始内容存档于2021-11-21). 
  34. ^ Unicode 11.0.0. Unicode Consortium. [2018-06-06]. (原始内容存档于2021-03-30). 
  35. ^ Unicode Data 11.0.0. [2018-06-06]. (原始内容存档于2022-04-08). 
  36. ^ Unicode 12.0.0. Unicode Consortium. [2019-03-13]. (原始内容存档于2021-03-30). 
  37. ^ Unicode Data 12.0.0. [2019-03-13]. (原始内容存档于2022-04-20). 
  38. ^ Unicode Version 12.1 released in support of the Reiwa Era. blog.unicode.org. [2019-05-07]. (原始内容存档于2019-05-07). 
  39. ^ The Unicode Standard, Version 13.0– Core Specification Appendix C (PDF). Unicode Consortium. [2020-03-11]. (原始内容 (PDF)存档于2021-08-05). 
  40. ^ Announcing The Unicode® Standard, Version 13.0. blog.unicode.org. [2020-03-11]. (原始内容存档于2022-04-26). 
  41. ^ Announcing The Unicode® Standard, Version 14.0. blog.unicode.org. [2022-09-15]. (原始内容存档于2022-09-15). 
  42. ^ Announcing The Unicode® Standard, Version 15.0. blog.unicode.org. [2022-09-15]. (原始内容存档于2023-01-07). 
  43. ^ Announcing The Unicode® Standard, Version 15.1. blog.unicode.org. [2023-09-12]. (原始内容存档于2023-01-07). 
  44. ^ The Unicode Standard, Version 6.2, 2012 Unicode, Inc. Chapter 2 General Structure 2.2 Unicode Design Principles (PDF). [2017-04-18]. (原始内容存档 (PDF)于2022-04-01). 

参閲

[编辑]

外部链接

[编辑]