fbpx
维基百科

Unicode

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

统一码
統一碼標誌
别名通用字符集 (UCS)
语言全球性
标准統一碼标准
编码格式UTF-8, UTF-16, GB18030
不常用:
UTF-32, BOCU, SCSU
已淘汰:
UTF-7
前用ISO/IEC 8859, 其他
  • 大众官网
  • 技术官网

Unicode伴隨著通用字符集ISO/IEC 10646的標準而發展,同時也以書本的形式[3]對外發表。Unicode至今仍在不斷增修,每個新版本都加入更多新的字符。目前最新的版本為2022年9月公布的15.0.0[4],已經收錄超過14萬個字符(第十萬個字符在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起,即有的區段可擴展或縮減,第一個擴展的即有區段為阿洪姆文(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]

在2005年,Unicode的第十萬個字元引入標準,該字元用於馬拉雅拉姆語

历史

截至目前的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 161 149,186 卡維文和蒙達里字母、4,192個中日韓統一表意文字字符(CJK-H)、用於埃及象形文字的控制字元以及20個繪文字。 [42]

Unicode的编码和实现

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

十大设计原则

《The Unicode Standard Version 6.2 – Core Specification》[43] 文档给出了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. ^ . unicode.org. [2021-03-25]. (原始内容存档于2021-04-21). 
  2. ^ 陈冰. Flash第一步 ActionScript编程篇. 清华大学出版社有限公司. 2006: 373. ISBN 9787302124207. 
  3. ^ The Unicode Standard 第五版. Addison-Wesley Professional. ISBN 0321480910. 
  4. ^ Unicode. Unicode 15.0. Unicode Consortium. 2022-09-15 [2022-09-15]. 
  5. ^ 5.0 5.1 . www.unicode.org. [2021-10-03]. (原始内容存档于2022-04-23). 
  6. ^ . www.unicode.org. [2021-10-03]. (原始内容存档于2021-12-14). 
  7. ^ Unicode. [2004-04-02]. (原始内容于2018-03-19). 
  8. ^ . www.unicode.org. [2021-09-20]. (原始内容存档于2021-10-23). 
  9. ^ Unicode, Inc. . [2020-06-12]. (原始内容存档于2022-02-03). 
  10. ^ Unicode Data 1.0.0. [2010-03-16]. (原始内容于2012-06-30). 
  11. ^ . [2010-03-16]. (原始内容存档于2022-03-21). 
  12. ^ . [2010-03-16]. (原始内容存档于2022-03-21). 
  13. ^ . [2010-03-16]. (原始内容存档于2022-03-21). 
  14. ^ . [2010-03-16]. (原始内容存档于2022-03-21). 
  15. ^ . [2010-03-16]. (原始内容存档于2022-03-21). 
  16. ^ . [2010-03-16]. (原始内容存档于2022-03-21). 
  17. ^ . [2010-03-16]. (原始内容存档于2022-03-21). 
  18. ^ . [2010-03-16]. (原始内容存档于2022-03-21). 
  19. ^ . [2010-03-16]. (原始内容存档于2022-03-21). 
  20. ^ . [2010-03-17]. (原始内容存档于2022-03-21). 
  21. ^ . [2010-03-17]. (原始内容存档于2022-04-19). 
  22. ^ . [2010-03-17]. (原始内容存档于2022-03-21). 
  23. ^ . [2010-10-11]. (原始内容存档于2022-03-21). 
  24. ^ . [2012-01-31]. (原始内容存档于2022-03-26). 
  25. ^ . [2012-09-26]. (原始内容存档于2022-03-26). 
  26. ^ . [2013-09-30]. (原始内容存档于2022-04-07). 
  27. ^ . [2014-06-15]. (原始内容存档于2022-04-07). 
  28. ^ Unicode 8.0.0. Unicode Consortium. [2015-06-17]. (原始内容于2016-06-28). 
  29. ^ . [2015-06-17]. (原始内容存档于2021-03-24). 
  30. ^ . Unicode Consortium. [2016-06-21]. (原始内容存档于2020-02-28). 
  31. ^ . [2016-06-21]. (原始内容存档于2022-04-07). 
  32. ^ Unicode 10.0.0. Unicode Consortium. [2017-06-20]. (原始内容于2017-06-20). 
  33. ^ . [2017-06-20]. (原始内容存档于2021-11-21). 
  34. ^ . Unicode Consortium. [2018-06-06]. (原始内容存档于2021-03-30). 
  35. ^ . [2018-06-06]. (原始内容存档于2022-04-08). 
  36. ^ . Unicode Consortium. [2019-03-13]. (原始内容存档于2021-03-30). 
  37. ^ . [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. ^ (PDF). Unicode Consortium. [2020-03-11]. (原始内容 (PDF)存档于2021-08-05). 
  40. ^ . blog.unicode.org. [2020-03-11]. (原始内容存档于2022-04-26). 
  41. ^ . blog.unicode.org. [2022-09-15]. (原始内容存档于2022-09-15). 
  42. ^ Announcing The Unicode® Standard, Version 15.0. blog.unicode.org. [2022-09-15]. 
  43. ^ (PDF). [2017-04-18]. (原始内容 (PDF)存档于2022-04-01). 

参閲

外部链接

  • Unicode official site(Unicode官方網站)
  • (页面存档备份,存于互联网档案馆)(Unicode聯盟)
  • Unicode 7.0.0 (页面存档备份,存于互联网档案馆
  • ,提供Unicode 6.0全部109242個字的GIF字型預覽
  • Alan Wood's Unicode Resources (页面存档备份,存于互联网档案馆
  • (國際音標的Unicode编碼)
  • CJK Compatibility Ideographs (页面存档备份,存于互联网档案馆)(中日韓兼容表意文字)
  • Unicode character charts(页面存档备份,存于互联网档案馆)(Unicode字符映射表)
  • UTF-8 Codepage (页面存档备份,存于互联网档案馆)(UTF-8代碼頁)
  • Unicode 11.0 (页面存档备份,存于互联网档案馆)(Unicode 11.0字符汇总,PDF)

unicode, 全稱為標準, standard, 其官方機構聯盟所用的中文名称为統一碼, 又译作萬國碼, 統一字元碼, 统一字符编码, 是信息技术領域的業界標準, 其整理, 編碼了世界上大部分的文字系統, 使得電腦能以通用劃一的字元集來處理和顯示文字, 不但減輕在不同編碼系統間切換和轉換的困擾, 更提供了一種跨平臺的亂碼問題解決方案, 由非營利機構聯盟, consortium, 負責維護, 該機構致力讓標準取代既有的字符編碼方案, 尤其既有方案的編碼空間有限, 亦不適用於多語環境, 统一码統一碼標誌别名通用字符集. Unicode 全稱為Unicode標準 The Unicode Standard 其官方機構Unicode聯盟所用的中文名称为統一碼 1 又译作萬國碼 統一字元碼 统一字符编码 2 是信息技术領域的業界標準 其整理 編碼了世界上大部分的文字系統 使得電腦能以通用劃一的字元集來處理和顯示文字 不但減輕在不同編碼系統間切換和轉換的困擾 更提供了一種跨平臺的亂碼問題解決方案 Unicode由非營利機構Unicode聯盟 Unicode Consortium 負責維護 該機構致力讓Unicode標準取代既有的字符編碼方案 尤其既有方案的編碼空間有限 亦不適用於多語環境 统一码統一碼標誌别名通用字符集 UCS 语言全球性标准統一碼标准编码格式UTF 8 UTF 16 GB18030不常用 UTF 32 BOCU SCSU已淘汰 UTF 7前用ISO IEC 8859 其他大众官网技术官网查论编Unicode伴隨著通用字符集ISO IEC 10646的標準而發展 同時也以書本的形式 3 對外發表 Unicode至今仍在不斷增修 每個新版本都加入更多新的字符 目前最新的版本為2022年9月公布的15 0 0 4 已經收錄超過14萬個字符 第十萬個字符在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 目录 1 起源與發展 1 1 標準 1 2 历史 2 Unicode的编码和实现 2 1 十大设计原则 2 2 编码方式 2 3 实现方式 2 4 Unicode字符平面映射 3 非Unicode环境 4 XML和Unicode 5 输入方法 5 1 中文輸入法 5 2 日文输入法 5 3 其他 6 注释 7 參考文獻 8 参閲 9 外部链接起源與發展 编辑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起 即有的區段可擴展或縮減 第一個擴展的即有區段為阿洪姆文 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 在2005年 Unicode的第十萬個字元引入標準 該字元用於馬拉雅拉姆語 历史 编辑 截至目前的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個位於擴展區G CJK 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 161 149 186 卡維文和蒙達里字母 4 192個中日韓統一表意文字字符 CJK H 用於埃及象形文字的控制字元以及20個繪文字 42 Unicode的编码和实现 编辑大概来说 Unicode编码系统可分为编码方式和实现方式两个层次 十大设计原则 编辑 The Unicode Standard Version 6 2 Core Specification 43 文档给出了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 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 將編碼空間分成 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标准的浏览器上显示任何地区文字的网页 只要电脑本身安装有合适的字体即可 可以利用 amp nnn 的格式显示特定的字符 nnn代表该字符的十进制Unicode代码 如果采用十六进制代码 在编码之前加上x字符即可 但部分旧版本的浏览器可能无法识别十六进制代码 过去电脑编码的8位标准 使每个国家都只按国家使用的字符而编定各自的编码系统 而对於部份字符系统比较复杂的语言 如越南语 又或者东亚国家的大型字符集 都不能在8位的环境下正常显示 只是最近才有在文本中对十六进制的支持 那么旧版本的浏览器显示那些字符或许可能有问题 大概首先会遇到的问题只是在对于大于8位Unicode字符的显示 解决这个问题的普遍做法仍然是将其中的十六进制码转换成一个十进制码 例如 用 amp 9824 代替 amp x2660 也有一些字符集标准将一些常用的标志存放在字符内码外面 那么你可能使用像 这样的文本标志来表示一个长划 的情况 即使它的字符内码已经使用 这些标准也不包含那个字符 然而部分由于Unicode版本发展原因 很多浏览器只能显示UCS 2完整字符集 也即现在使用的Unicode版本中的一个小子集 下表可以检验您的浏览器如何显示各种Unicode代码 代码 字符标准名称 英语 在浏览器上的显示 amp x0041 大写拉丁字母 A A amp x00DF 小写拉丁字母 Sharp S ss amp x00FE 小写拉丁字母 Thorn th amp x0394 大写希腊字母 Delta D amp x0419 大写斯拉夫字母 Short I J amp x05E7 希伯来字母 Qof ק amp x0645 阿拉伯字母 Meem م amp x0E57 泰文数字7 7 amp x1250 埃塞俄比亚音节文字 Qha ቐ amp x3042 日语平假名 A あ amp x30A2 日语片假名 A ア amp x53F6 简体汉字 叶 叶 amp x8449 繁体汉字 葉 葉 amp xC5FD 韩国音节文字 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间隔符输入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键即可得到该字符 如Alt033865會得到Unicode字元葉 另外 按AltX组合键 Microsoft Word也会将光标前面的字符同其十六进制的四位Unicode编码互相转换 注释 编辑 下列的總計數是圖形 格式及控制字符的總數目 即不計算私人使用區 非字元及代理字符在內 參考文獻 编辑 About Unicode Terminology unicode org 2021 03 25 原始内容存档于2021 04 21 陈冰 Flash第一步 ActionScript编程篇 清华大学出版社有限公司 2006 373 ISBN 9787302124207 The Unicode Standard 第五版 Addison Wesley Professional ISBN 0321480910 Unicode Unicode 15 0 Unicode Consortium 2022 09 15 2022 09 15 5 0 5 1 Technical Introduction www unicode org 2021 10 03 原始内容存档于2022 04 23 FAQ Unicode and ISO 10646 www unicode org 2021 10 03 原始内容存档于2021 12 14 Unicode 2004 04 02 原始内容存档于2018 03 19 BETA Unicode 14 0 0 www unicode org 2021 09 20 原始内容存档于2021 10 23 Unicode Inc Unicode 14 0 Delayed for 6 Months 2020 06 12 原始内容存档于2022 02 03 Unicode Data 1 0 0 2010 03 16 原始内容存档于2012 06 30 Unicode Data 1 0 1 2010 03 16 原始内容存档于2022 03 21 Unicode Data 1995 2010 03 16 原始内容存档于2022 03 21 Unicode Data 2 0 14 2010 03 16 原始内容存档于2022 03 21 Unicode Data 2 1 2 2010 03 16 原始内容存档于2022 03 21 Unicode Data 3 0 0 2010 03 16 原始内容存档于2022 03 21 Unicode Data 3 1 0 2010 03 16 原始内容存档于2022 03 21 Unicode Data 3 2 0 2010 03 16 原始内容存档于2022 03 21 Unicode Data 4 0 0 2010 03 16 原始内容存档于2022 03 21 Unicode Data 2010 03 16 原始内容存档于2022 03 21 Unicode Data 5 0 0 2010 03 17 原始内容存档于2022 03 21 Unicode Data 5 1 0 2010 03 17 原始内容存档于2022 04 19 Unicode Data 5 2 0 2010 03 17 原始内容存档于2022 03 21 Unicode Data 6 0 0 2010 10 11 原始内容存档于2022 03 21 Unicode Data 6 1 0 2012 01 31 原始内容存档于2022 03 26 Unicode Data 6 2 0 2012 09 26 原始内容存档于2022 03 26 Unicode Data 6 3 0 2013 09 30 原始内容存档于2022 04 07 Unicode Data 7 0 0 2014 06 15 原始内容存档于2022 04 07 Unicode 8 0 0 Unicode Consortium 2015 06 17 原始内容存档于2016 06 28 Unicode Data 8 0 0 2015 06 17 原始内容存档于2021 03 24 Unicode 9 0 0 Unicode Consortium 2016 06 21 原始内容存档于2020 02 28 Unicode Data 9 0 0 2016 06 21 原始内容存档于2022 04 07 Unicode 10 0 0 Unicode Consortium 2017 06 20 原始内容存档于2017 06 20 Unicode Data 10 0 0 2017 06 20 原始内容存档于2021 11 21 Unicode 11 0 0 Unicode Consortium 2018 06 06 原始内容存档于2021 03 30 Unicode Data 11 0 0 2018 06 06 原始内容存档于2022 04 08 Unicode 12 0 0 Unicode Consortium 2019 03 13 原始内容存档于2021 03 30 Unicode Data 12 0 0 2019 03 13 原始内容存档于2022 04 20 Unicode Version 12 1 released in support of the Reiwa Era blog unicode org 2019 05 07 原始内容存档于2019 05 07 The Unicode Standard Version 13 0 Core Specification Appendix C PDF Unicode Consortium 2020 03 11 原始内容 PDF 存档于2021 08 05 Announcing The Unicode Standard Version 13 0 blog unicode org 2020 03 11 原始内容存档于2022 04 26 Announcing The Unicode Standard Version 14 0 blog unicode org 2022 09 15 原始内容存档于2022 09 15 Announcing The Unicode Standard Version 15 0 blog unicode org 2022 09 15 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 参閲 编辑 语言主题 信息技术主题 国际关系主题 Wikipedia Unicode扩展汉字 Unicode字符平面映射 Unicode聯盟 Unicode字符列表 Unicode数字 中日韓統一表意文字 CJK Unihan 通用字符集 寬字元 UTF 8 萬國音標 表示語言讀音 外部链接 编辑維基教科書中的相關電子教程 Unicode编码表Unicode official site Unicode官方網站 页面存档备份 存于互联网档案馆 Unicode聯盟 Unicode 7 0 0 页面存档备份 存于互联网档案馆 DecodeUnicode Unicode WIKI 提供Unicode 6 0全部109242個字的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 取自 https zh wikipedia org w index php title Unicode amp oldid 75267088, 维基百科,wiki,书籍,书籍,图书馆,

文章

,阅读,下载,免费,免费下载,mp3,视频,mp4,3gp, jpg,jpeg,gif,png,图片,音乐,歌曲,电影,书籍,游戏,游戏。