Unicode - 维基百科,自由的百科全书
文章推薦指數: 80 %
Unicode,統一碼聯盟官方中文名称为統一碼,是信息技术領域的業界標準。
它整理、編碼了世界上大部分的文字系統,使得電腦可以用更為簡單的方式來呈現和處理文字。
Unicode
計算行業標準,對大多數世界的書寫系統中表達的文本進行一致的編碼,表示和處理
語言
監視
編輯
Unicode,萬國碼聯盟官方中文名稱為統一碼[1],是資訊科技領域的業界標準。
它整理、編碼了世界上大部分的文字系統,使得電腦可以用更為簡單的方式來呈現和處理文字。
萬國碼萬國碼標誌別名通用字元集(UCS)語言全球性標準萬國碼標準編碼格式UTF-8,UTF-16,GB18030不常用:UTF-32,BOCU,SCSU已淘汰:UTF-7前用ISO/IEC8859,其他大眾官網技術官網閱論編Unicode伴隨著通用字元集的標準而發展,同時也以書本的形式[2]對外發表。
Unicode至今仍在不斷增修,每個新版本都加入更多新的字元。
目前最新的版本為2022年9月公布的15.0.0[3],已經收錄超過14萬個字元(第十萬個字元在2005年獲採納)。
Unicode除了視覺上的字形、編碼方法、標準的字元編碼資料外,還包含了字元特性(如大小寫字母)、書寫方向、拆分標準等特性的資料庫。
Unicode的發展由非營利機構萬國碼聯盟負責,該機構致力於讓Unicode方案取代既有的字元編碼方案。
因為既有的方案往往空間非常有限,亦不適用於多語環境。
Unicode備受認可,並廣泛地應用於電腦軟體的國際化與在地化過程。
有很多新科技,如可延伸標示語言(ExtensibleMarkupLanguage,簡稱:XML)、Java程式語言以及現代的作業系統,都採用Unicode編碼。
Unicode也被ISO作為國際標準採納於通用字元集,即ISO/IEC10646,且Unicode相容ISO/IEC10646且完整對應各個版本標準。
[4][5]
目次
1起源與發展
1.1標準
1.2歷史
2Unicode的編碼和實現
2.1十大設計原則
2.2編碼方式
2.3實現方式
2.4Unicode字符平面映射
3非Unicode環境
4XML和Unicode
5輸入方法
5.1中文輸入法
5.2日文輸入法
5.3其他
6注釋
7參考文獻
8參閲
9外部連結
起源與發展編輯
Unicode為解決傳統字元編碼方案的侷限而產生,例如ISO8859-1所定義的字元雖然在不同的國家中廣泛地使用,可是在不同國家間卻經常出現不相容的情況。
很多傳統的編碼方式都有共同的問題,即容許電腦處理雙語環境(通常使用拉丁字母以及其本地語言),但卻無法同時支援多語言環境(指可同時處理多種語言混合的情況)。
Unicode編碼包含了不同寫法的字,如「ɑ/a」、「強/强」、「戶/户/戸」。
然而在漢字方面引起了一字多形的認定爭議,詳見中日韓統一表意文字。
在文字處理方面,萬國碼為每一個字元而非字形定義唯一的代碼(即一個整數)。
換句話說,萬國碼以一種抽象的方式(即數字)來處理字元,並將視覺上的演繹工作(例如字體大小、外觀形狀、字體形態、文體等)留給其他軟體來處理,例如網頁瀏覽器或是文字處理器。
目前,幾乎所有電腦系統都支援基本拉丁字母,並各自支援不同的其他編碼方式。
Unicode為了和它們相互相容,其首256個字元保留給ISO8859-1所定義的字元,使既有的西歐語系文字的轉換不需特別考量;並且把大量相同的字元重複編到不同的字元碼中去,使得舊有紛雜的編碼方式得以和Unicode編碼間互相直接轉換,而不會遺失任何資訊。
舉例來說,全形格式區段包含了主要的拉丁字母的全形格式,在中文、日文、以及韓文字形當中,這些字元以全形的方式來呈現,而不以常見的半形形式顯示,這對豎排文字和等寬排列文字有重要作用。
在表示一個Unicode的字元時,通常會用「U+」然後緊接著一組十六進位的數字來表示這一個字元。
在基本多文種平面裏的所有字元,要用四個數字(即2位元組,共16位元,例如U+4AE0,共支援六萬多個字元);在零號平面以外的字元則需要使用五或六個數字。
舊版的Unicode標準使用相近的標記方法,但卻有些微小差異:在Unicode3.0裏使用「U-」然後緊接著八個數字,而「U+」則必須隨後緊接著四個數字。
標準編輯
位於美國加州的Unicode組織允許任何願意支付會費的公司和個人加入,其成員包含了主要的電腦軟硬體廠商,例如Adobe系統、蘋果公司、惠普、IBM、微軟、全錄等。
20世紀80年代末,組成Unicode組織的商業機構,和國際合作的國際標準化組織因為電腦普及和資訊國際化的前提下,分別各自成立了Unicode組織[6]和ISO-10646工作小組。
他們不久便發現對方的存在,大家為著相同的目的而工作。
1991年,UnicodeConsortium與ISO/IECJTC1/SC2同意保持Unicode碼表與ISO10646標準保持相容並密切協調各自標準進一步的擴展。
雖然實際上兩者的字集編碼相同,但實質上兩者確實為兩個不同的標準。
Unicode1.1對應於ISO10646-1:1993,Unicode3.0對應於ISO10646-1:2000,Unicode3.2對應於ISO10646-2:2001,Unicode4.0對應於ISO10646:2003,Unicode5.0對應於ISO10646:2003及附錄1–3。
Unicode自2.0版本開始保持了向下相容,即新的版本僅僅增加字元,原有字元不會刪除或更名。
但從Unicode14.0起,即有的區段可擴展或縮減,第一個擴展的即有區段為阿洪姆文(Ahom)。
[7]萬國碼聯盟在1991年首次發佈了TheUnicodeStandard。
Unicode的開發結合了國際標準化組織所制定的ISO/IEC10646,即通用字元集。
Unicode與ISO/IEC10646在編碼的運作原理相同,但TheUnicodeStandard包含了更詳盡的實現資訊、涵蓋了更細節的主題,諸如位元編碼(bitwiseencoding)、校對以及呈現等。
TheUnicodeStandard也列舉了諸多的字元特性,例如必須支援兩種閱讀方向的字元(由左至右或由右至左的文字閱讀方向,例如阿拉伯文是由右至左)。
Unicode與ISO/IEC10646兩個標準在術語上的使用有些微的不同。
[4]在2005年,Unicode的第十萬個字元引入標準,該字元用於馬拉雅拉姆語。
歷史編輯
截至目前的Unicode各版本及其發佈時間如下:
其中,因應嚴重特殊傳染性肺炎疫情,Unicode14.0由2021年3月延後至2021年9月發布[8]。
Unicode版本
版本
發布日期
書籍
對應ISO/IEC10646版本
文字數
字元數
總計[註1]
已知的擴增
1.0.0
1991年10月
ISBN 0-201-56788-1(Vol.1)
24
7,161
最初包含的文字有:阿拉伯字母、亞美尼亞字母、孟加拉文、注音符號、西里爾字母、天城文、喬治亞字母、希臘字母、古吉拉特文、古木基文、諺文、希伯來字母、平假名、卡納達文、片假名、寮文字、拉丁字母、馬拉雅拉姆文、奧里亞文、泰米爾文、泰盧固文、泰文字與藏文[9]。
1.0.1
1992年6月
ISBN 0-201-60845-6(Vol.2)
25
28,359
定義中日韓統一表意文字最初的20,902個字[10]。
1.1
1993年6月
ISO/IEC10646-1:1993
24
34,233
於原有2,350個諺文字母的基礎上新增4,306個諺文字母。
移除藏文[11]。
2.0
1996年7月
ISBN 0-201-48345-9
ISO/IEC10646-1:1993與其第5-7修訂版
25
38,950
移除原有的諺文字母設定,於新的編碼範圍更換成11,172個新的諺文字母。
藏文重新加入,但編碼位置更換。
代理字元機制建立,並將第15與第16平面分配給私人使用區[12]。
2.1
1998年5月
ISO/IEC10646-1:1993與其第5-7修訂版,以及第18修訂版中新增的2個字元
25
38,952
新增歐元符號與物件替換字元[13]。
3.0
1999年9月
ISBN 0-201-61633-5
ISO/IEC10646-1:2000
38
49,259
新增切羅基文、吉茲字母、高棉字母、蒙古字母、緬文、歐甘字母、盧恩字母、僧伽羅文、敘利亞字母、它拿字母、加拿大原住民音節文字和彝文,以及部分盲文圖案。
[14]3.1
2001年3月
ISO/IEC10646-1:2000
ISO/IEC10646-2:2001
41
94,205
新增德瑟雷特字母(英語:Deseretalphabet)、哥特字母、古義大利字母、音樂符號和拜占庭音樂符號,追加了42711個中日韓統一表意文字(CJK-B)。
[15]3.2
2002年3月
ISO/IEC10646-1:2000與其第1修訂版
ISO/IEC10646-2:2001
45
95,221
新增菲律賓文字布錫文、哈努諾文、他加祿文、塔格巴奴亞文。
[16]4.0
2003年4月
ISBN 0-321-18578-1
ISO/IEC10646:2003
52
96,447
新增賽普勒斯音節文字、林布字母、線形文字B、奧斯曼亞字母、蕭伯納字母、德宏傣文、烏加里特字母以及六十四卦。
[17]4.1
2005年3月
ISO/IEC10646:2003與其第1修訂版
59
97,720
新增布吉文、格拉哥里字母、佉盧文、西雙版納傣文、古波斯文、錫爾赫特文和提非納文。
科普特字母從希臘文區段分離。
新增了古希臘音樂符號。
[18]5.0
2006年7月
ISBN 0-321-48091-0
ISO/IEC10646:2003與其第1、2修訂版,以及第3修訂版中新增的4個字元
64
99,089
新增峇里文、楔形文字、西非書面文字、八思巴文和腓尼基字母。
[19]5.1
2008年4月
ISO/IEC10646:2003與其第1-4修訂版
75
100,713
新增卡利亞文、占婆字母、克耶黎文、絨巴文、利西亞文、呂底亞文、桑塔利文、拉讓文、索拉什特拉文、巽他文和瓦伊文。
同時增加了斐斯托斯圓盤、麻將和多米諾骨牌符號。
對緬甸文做了重要的補充,追加了手抄縮寫的額外字母,追加了大寫ẞ。
[20]5.2
2009年10月
ISBN 978-1-936213-00-9
ISO/IEC10646:2003與其第1-6修訂版
90
107,361
新增阿維斯陀文、巴姆穆文字、埃及象形文字(加汀納符號表,涵蓋1071個符號)、亞拉姆文、巴拉維碑銘體、帕提亞碑銘體、爪哇文、凱提文、老傈僳文、曼尼普爾文、南阿拉伯字母、古突厥文、撒瑪利亞字母、老傣文和傣越文。
追加4,149個中日韓統一表意文字(CJK-C),同時擴充了古韓文和吠陀梵文的字元。
[21]6.0
2010年10月
ISBN 978-1-936213-01-6
ISO/IEC10646:2010與印度盧比符號
93
109,449
新增巴塔克字母、婆羅米文字、曼達字母、紙牌符號、交通標誌、地圖符號、鍊金術符號、顏文字和繪文字。
追加222個額外的中日韓統一表意文字(CJK-D)。
[22]6.1
2012年1月
ISBN 978-1-936213-02-3
ISO/IEC10646:2012
100
110,181
新增查克馬字母、麥羅埃文、麥羅埃象形文字、柏格理苗文、夏拉達文、索拉僧平文字和泰克里文。
[23]6.2
2012年9月
ISBN 978-1-936213-07-8
ISO/IEC10646:2012與土耳其里拉符號
100
110,182
土耳其里拉符號[24]。
6.3
2013年9月
ISBN 978-1-936213-08-5
ISO/IEC10646:2012與6個字元
100
110,187
5個雙向排版符號。
[25]7.0
2014年6月
ISBN 978-1-936213-09-2
ISO/IEC10646:2012與其第1、2修訂版,以及俄羅斯盧布符號
123
113,021
新增巴薩字母、高加索阿爾巴尼亞字母、杜普雷嚴速記、愛爾巴桑字母、古蘭塔文、可吉文、庫達瓦迪文、線形文字A、馬哈佳尼文、摩尼教字母、門得文字、莫迪字母、默文、納巴泰字母、古北阿拉伯文、古彼爾姆文、楊松錄苗文、帕米拉文字、袍清豪文、詩篇巴列維文、悉曇文字、底羅仆多文、瓦蘭齊地文以及裝飾符號。
[26]8.0
2015年6月
ISBN 978-1-936213-10-8
ISO/IEC10646:2014與其第1修訂版,以及喬治亞拉里符號、9個中日韓統一表意文字與41個表情符號[27]
129
120,737
增加阿洪姆文、安納托利亞象形文字、哈坦文、穆爾塔尼文、古匈牙利字母、薩頓手語譜寫、5,771個中日韓統一表意文字字元(CJK-E)、切羅基文小寫字母,以及五種繪文字膚色修改字元。
[28]9.0
2016年6月
ISBN 978-1-936213-13-9
ISO/IEC10646:2014與其第1、2修訂版,阿德拉姆字母、尼泊爾紐瓦字母、日本電視符號和74個繪文字表情與符號。
[29]
135
128,237
新增阿德拉姆字母、比奇舒奇文、象雄文、尼泊爾紐瓦字母、歐塞奇字母、西夏文以及74個繪文字[30]10.0
2017年6月
ISBN 978-1-936213-16-0
ISO/IEC10646:2017,新增56個繪文字符號、385個變體假名字元,和3個札那巴札爾字元[31]
139
136,755
札那巴札爾、索永布文字、馬薩拉姆貢德文字、女書、變體假名(非標準平假名)、7,494個中日韓統一表意文字字元(CJK-F)與56個繪文字[32]11.0
2018年6月
ISBN 978-1-936213-19-1
ISO/IEC10646:2017與其第1修訂版,新增145個繪文字符號、5個急用漢字,copyleft符號、中國象棋符號等[33]
146
137,374
多格拉文、喬治亞文騎士體大寫字母、貢賈拉貢德文、哈乃斐羅興亞文字、望加錫文、梅德法伊德林文、老粟特字母、粟特字母以及145個繪文字[34]12.0
2019年3月
ISBN 978-1-936213-22-1
ISO/IEC10646:2017與其第1、2修訂版,新增61個繪文字符號、一些方言苗文字元、古日文用小型日文假名、泰米爾文的符號、聖書體控制字元等[35]
150
137,928
埃利邁文、南迪城文、創世紀苗文、文喬文以及61個繪文字[36]12.1
2019年5月
ISBN 978-1-936213-25-2
150
137,929
只在U+32FF新增了一個字元,即日本新年號令和的合字。
[37]13.0
2020年3月
ISBN 978-1-936213-26-9
ISO/IEC10646:2020[38]
154
143,924
花剌子模語、迪維西語的島字母(英語:Dhivesakuru)、契丹小字、庫爾德語字母的雅茲迪文、4969個中日韓統一表意文字(4939個位於擴充區G(CJK-G))、書寫豪薩語用的阿拉伯附加字母、沃洛夫語、其他非洲語言、在巴基斯坦書寫印德科語(英語:Hindko)和旁遮普語的補充字元、粵語用的注音符號、創用CC授權符號、1970年代和1980年代電訊用圖符、55個繪文字[39]14.0
2021年9月
ISBN 978-1-936213-29-0
159
144,697
托托文,用於在印度東北部書寫托托語
塞普勒斯-米諾斯文字,一種未破譯的歷史文字,主要用於賽普勒斯島
維斯庫奇文,一種用於書寫阿爾巴尼亞語的歷史文字,正在經歷現代復興
回鶻字母,一種歷史上在中亞和其他地方用於書寫突厥語、漢語、蒙古語、藏語和阿拉伯語的文字
唐薩文,一種現代文字,用於書寫在印度和緬甸使用的唐薩語
位於第一輔助平面的拉丁文擴充區段(擴展F和G)增加了許多擴充IPA字母,和許多用於拉丁語及阿拉伯文字的補充字母,這些字母用於非洲和伊朗、巴基斯坦、馬來西亞、印度尼西亞、爪哇和波士尼亞書寫語言,以及書寫敬語,以及為《古蘭經》使用的補充。
其它的一些字元添加支援北美和菲律賓、印度和蒙古的語言的文字
追加9個額外的中日韓統一表意文字(基本多文種平面、第二輔助平面)。
[40]15.0
2022年9月
ISBN 978-1-936213-29-0
161
149,186
卡維文和蒙達里字母、4,192個中日韓統一表意文字字元(CJK-H)、用於埃及象形文字的控制字元以及20個繪文字。
[41]Unicode的編碼和實現編輯
大概來說,Unicode編碼系統可分為編碼方式和實現方式兩個層次。
十大設計原則編輯
《TheUnicodeStandardVersion6.2–CoreSpecification》[42]文件給出了Unicode的十大設計原則:
Universality:提供單一、綜合的字元集,編碼一切現代與大部分歷史文獻的字元。
Efficiency:易於處理與分析。
Characters,notglyphs:字元,而不是字形。
Semantics:字元要有良好定義的語意。
Plaintext:僅限於文字字元。
Logicalorder:預設記憶體表示是其邏輯序。
Unification:把不同語言的同一書寫系統(scripts)中相同字元統一起來。
Dynamiccomposition:附加符號可以動態組合。
Stability:已分配的字元與語意不再改變。
Convertibility:Unicode與其他著名字元集可以精確轉換。
編碼方式編輯
萬國碼的編碼方式與ISO10646的通用字元集概念相對應。
目前實際應用的萬國碼版本對應於UCS-2,使用16位的編碼空間。
也就是每個字元占用2個位元組。
這樣理論上一共最多可以表示216(即65536)個字元。
基本滿足各種語言的使用。
實際上目前版本的萬國碼並未完全使用這16位元編碼,而是保留了大量空間以作為特殊使用或將來擴充。
上述16位元萬國碼字元構成基本多文種平面。
最新(但未實際廣泛使用)的萬國碼版本定義了16個輔助平面,兩者合起來至少需要占據21位的編碼空間,比3位元組略少。
但事實上輔助平面字元仍然占用4位元組編碼空間,與UCS-4保持一致。
未來版本會擴充到ISO10646-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轉換格式(UnicodeTransformationFormat,簡稱為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上讀取時是從低位元組開始,那麼在MacOS會認為此4E59編碼為594E,找到的字元為「奎」,而在Windows上從高位元組開始讀取,則編碼為U+4E59的字元為「乙」。
就是說在Windows下以UTF-16編碼儲存一個字元「乙」,在MacOS環境下開啟會顯示成「奎」。
此類情況說明UTF-16的編碼順序若不加以人為定義就可能發生混淆,於是在UTF-16編碼實現方式中使用了大端序(Big-Endian,簡寫為UTF-16BE)、小端序(Little-Endian,簡寫為UTF-16LE)的概念,以及可附加的位元組順序記號解決方案,目前在個人電腦上的Windows系統和Linux系統對於UTF-16編碼預設使用UTF-16LE。
(具體方案參見UTF-16)
此外Unicode的實現方式還包括UTF-7、Punycode、CESU-8、SCSU、UTF-32、GB18030等,這些實現方式有些僅在一定的國家和地區使用,有些則屬於未來的規劃方式。
目前通用的實現方式是UTF-16小端序(LE)、UTF-16大端序(BE)和UTF-8。
在微軟公司WindowsXP附帶的記事本(Notepad)中,「另存為」對話方塊可以選擇的四種編碼方式除去非Unicode編碼的ANSI(對於英文系統即ASCII編碼,中文系統則為GB2312或Big5編碼)外,其餘三種為「Unicode」(對應UTF-16LE)、「Unicodebigendian」(對應UTF-16BE)和「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標準的瀏覽器上顯示任何地區文字的網頁,只要電腦本身安裝有合適的字型即可。
可以利用nnn;的格式顯示特定的字元。
nnn代表該字元的十進位Unicode代碼。
如果採用十六進位代碼,在編碼之前加上x字元即可。
但部分舊版本的瀏覽器可能無法辨識十六進位代碼。
過去電腦編碼的8位元標準,使每個國家都只按國家使用的字元而編定各自的編碼系統;而對於部份字元系統比較複雜的語言,如越南語,又或者東亞國家的大型字元集,都不能在8位元的環境下正常顯示。
只是最近才有在文字中對十六進位的支援,那麼舊版本的瀏覽器顯示那些字元或許可能有問題——大概首先會遇到的問題只是在對於大於8位元Unicode字元的顯示。
解決這個問題的普遍做法仍然是將其中的十六進位碼轉換成一個十進位碼(例如:♠用♠代替♠)。
也有一些字元集標準將一些常用的標誌存放在字元內碼外面,那麼你可能使用像—這樣的文字標誌來表示一個長劃(—)的情況,即使它的字元內碼已經使用,這些標準也不包含那個字元。
然而部分由於Unicode版本發展原因,很多瀏覽器只能顯示UCS-2完整字元集,也即現在使用的Unicode版本中的一個小子集。
下表可以檢驗您的瀏覽器如何顯示各種Unicode代碼:
代碼
字元標準名稱(英語)
在瀏覽器上的顯示
A
大寫拉丁字母「A」
A
ß
小寫拉丁字母「SharpS」
ß
þ
小寫拉丁字母「Thorn」
þ
Δ
大寫希臘字母「Delta」
Δ
Й
大寫斯拉夫字母「ShortI」
Й
ק
希伯來字母「Qof」
ק
م
阿拉伯字母「Meem」
م
๗
泰文數字7
๗
ቐ
衣索比亞音節文字「Qha」
ቐ
あ
日語平假名「A」
あ
ア
日語片假名「A」
ア
叶
簡體漢字「叶」
叶
葉
正體漢字「葉」
葉
엽
韓國音節文字「Yeop」
엽
一些多語言支援的網頁瀏覽器,比如MicrosoftWindows系統的InternetExplorer5.5及以上版本,以及跨平台的瀏覽器Mozilla/Netscape6,可以在安裝時根據需要動態地使用相應的字元集,預先安裝了合適的語言套件,就可以同時顯示頁面上的各種Unicode字元。
InternetExplorer5.5還提出使用者可以在需要新字型時,即裝即用。
另外的瀏覽器如NetscapeNavigator4.77,則只能顯示跟頁面編碼相應字元集中的文字。
當你使用後一種瀏覽器時,你不大可能預先安裝所有的字型,即使有了字型,瀏覽器也不一定能將這些字型完全應用起來。
可能遇到的情況是,這種瀏覽器只能夠顯示部分文字,因為它們是按照標準編碼,儘管理論上在相容的系統中,只要有了相應的Code2000字型,就可以正確顯示。
一種變通的辦法,是將某些少見的字元,通過「名稱實體參照」的方式來使用。
輸入方法編輯
不同的作業系統,各有直接輸入Unicode字元的方法:
基於XWindowSystem的Linux系統,如Ubuntu的GnomeTerminal,首先按下Ctrl+Shift+U,然後輸入16進位Unicode數,如interpunct間隔符輸入00b7,最後按空格鍵;
MicrosoftWindows系統,按下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區的漢字尚無編碼。
日文輸入法編輯
使用MicrosoftIME2007,可以在IMEPad找到Unicode的點擊表。
點擊字元即可輸入。
選擇字型可以預覽字元效果。
其他編輯
除了輸入法外,作業系統也會提供另外幾種方法輸入Unicode。
像是Windows2000之後的Windows系統就提供可點擊的字元對映表。
又或者在MicrosoftWord下,按下Alt鍵不放,使用數字鍵盤輸入0和某個字元的Unicode編碼(十進位),再鬆開Alt鍵即可得到該字元,如Alt033865會得到Unicode字元葉。
另外,按AltX組合鍵,MicrosoftWord也會將游標前面的字元同其十六進位的四位Unicode編碼互相轉換。
注釋編輯
^下列的總計數是圖形、格式及控制字元的總數目,即不計算私人使用區、非字元及代理字元在內。
參考文獻編輯
^AboutUnicodeTerminology.unicode.org.[2021-03-25].(原始內容存檔於2021-04-21).
^TheUnicodeStandard第五版.Addison-WesleyProfessional.ISBN 0321480910.
^Unicode.Unicode15.0.UnicodeConsortium.2022-09-15[2022-09-15].
^4.04.1TechnicalIntroduction.www.unicode.org.[2021-10-03].(原始內容存檔於2022-04-23).
^FAQ-UnicodeandISO10646.www.unicode.org.[2021-10-03].(原始內容存檔於2021-12-14).
^Unicode.[2004-04-02].(原始內容存檔於2018-03-19).
^BETAUnicode14.0.0.www.unicode.org.[2021-09-20].(原始內容存檔於2021-10-23).
^Unicode,Inc.Unicode14.0Delayedfor6Months.[2020-06-12].(原始內容存檔於2022-02-03).
^UnicodeData1.0.0.[2010-03-16].(原始內容存檔於2012-06-30).
^UnicodeData1.0.1.[2010-03-16].(原始內容存檔於2022-03-21).
^UnicodeData1995.[2010-03-16].(原始內容存檔於2022-03-21).
^UnicodeData-2.0.14.[2010-03-16].(原始內容存檔於2022-03-21).
^UnicodeData-2.1.2.[2010-03-16].(原始內容存檔於2022-03-21).
^UnicodeData-3.0.0.[2010-03-16].(原始內容存檔於2022-03-21).
^UnicodeData-3.1.0.[2010-03-16].(原始內容存檔於2022-03-21).
^UnicodeData-3.2.0.[2010-03-16].(原始內容存檔於2022-03-21).
^UnicodeData-4.0.0.[2010-03-16].(原始內容存檔於2022-03-21).
^UnicodeData.[2010-03-16].(原始內容存檔於2022-03-21).
^UnicodeData5.0.0.[2010-03-17].(原始內容存檔於2022-03-21).
^UnicodeData5.1.0.[2010-03-17].(原始內容存檔於2022-04-19).
^UnicodeData5.2.0.[2010-03-17].(原始內容存檔於2022-03-21).
^UnicodeData6.0.0.[2010-10-11].(原始內容存檔於2022-03-21).
^UnicodeData6.1.0.[2012-01-31].(原始內容存檔於2022-03-26).
^UnicodeData6.2.0.[2012-09-26].(原始內容存檔於2022-03-26).
^UnicodeData6.3.0.[2013-09-30].(原始內容存檔於2022-04-07).
^UnicodeData7.0.0.[2014-06-15].(原始內容存檔於2022-04-07).
^Unicode8.0.0.UnicodeConsortium.[2015-06-17].(原始內容存檔於2016-06-28).
^UnicodeData8.0.0.[2015-06-17].(原始內容存檔於2021-03-24).
^Unicode9.0.0.UnicodeConsortium.[2016-06-21].(原始內容存檔於2020-02-28).
^UnicodeData9.0.0.[2016-06-21].(原始內容存檔於2022-04-07).
^Unicode10.0.0.UnicodeConsortium.[2017-06-20].(原始內容存檔於2017-06-20).
^UnicodeData10.0.0.[2017-06-20].(原始內容存檔於2021-11-21).
^Unicode11.0.0.UnicodeConsortium.[2018-06-06].(原始內容存檔於2021-03-30).
^UnicodeData11.0.0.[2018-06-06].(原始內容存檔於2022-04-08).
^Unicode12.0.0.UnicodeConsortium.[2019-03-13].(原始內容存檔於2021-03-30).
^UnicodeData12.0.0.[2019-03-13].(原始內容存檔於2022-04-20).
^UnicodeVersion12.1releasedinsupportoftheReiwaEra.blog.unicode.org.[2019-05-07].(原始內容存檔於2019-05-07).
^TheUnicodeStandard,Version13.0–CoreSpecificationAppendixC(PDF).UnicodeConsortium.[2020-03-11].(原始內容(PDF)存檔於2021-08-05).
^AnnouncingTheUnicode®Standard,Version13.0.blog.unicode.org.[2020-03-11].(原始內容存檔於2022-04-26).
^AnnouncingTheUnicode®Standard,Version14.0.blog.unicode.org.[2022-09-15].(原始內容存檔於2022-09-15).
^AnnouncingTheUnicode®Standard,Version15.0.blog.unicode.org.[2022-09-15].
^TheUnicodeStandard,Version6.2,2012Unicode,Inc.Chapter2GeneralStructure2.2UnicodeDesignPrinciples(PDF).[2017-04-18].(原始內容(PDF)存檔於2022-04-01).
參閲編輯
語言主題
資訊科技主題
國際關係主題
Wikipedia:Unicode擴充漢字
Unicode字元平面對映
Unicode聯盟
Unicode字元列表
Unicode數字
中日韓統一表意文字(CJK/Unihan)
通用字元集
寬字元
UTF-8
萬國音標(表示語言讀音)
外部連結編輯
維基教科書中的相關電子教學:Unicode編碼表Unicodeofficialsite(Unicode官方網站)
(頁面存檔備份,存於網際網路檔案館)(Unicode聯盟)
Unicode7.0.0(頁面存檔備份,存於網際網路檔案館)
DecodeUnicode-UnicodeWIKI,提供Unicode6.0全部109242個字的GIF字型預覽
AlanWood'sUnicodeResources(頁面存檔備份,存於網際網路檔案館)
TheInternationalPhoneticAlphabetinUnicode(國際音標的Unicode編碼)
CJKCompatibilityIdeographs(頁面存檔備份,存於網際網路檔案館)(中日韓相容表意文字)
Unicodecharactercharts(頁面存檔備份,存於網際網路檔案館)(Unicode字元對映表)
UTF-8和Unicode的常見問題
UTF-8Codepage(頁面存檔備份,存於網際網路檔案館)(UTF-8代碼頁)
Unicode11.0(頁面存檔備份,存於網際網路檔案館)(Unicode11.0字元匯總,PDF)
取自「https://zh.wikipedia.org/w/index.php?title=Unicode&oldid=73708700」
延伸文章資訊
- 1Unicode、UTF-8、UTF-16?編碼格式花傻傻
它對世界上大部分的文字系統進行了整理、編碼,使得電腦可以用更為簡單的方式來呈現和處理文字。 Unicode伴隨著通用字符集的標準而發展,同時也以書本的形式對外發表。
- 2Unicode?UTF-8?GBK?……聊聊字符集和字符编码格式
Unicode 字符集简介 · UTF-8 —— 一种变长的Unicode 字符编码转换格式 · 扩展:聊聊主要针对汉字的字符集——GBK 和GB18030.
- 3Unicode 編碼說明 - iT 邦幫忙
所以就出現了所謂的Unicode 這個編碼, 收納了好幾百萬個全世界的文字符號. ... 而如果電腦直接原封不動儲存Unicode 原始格式編碼(UTF-32), 就會佔用太多不必要的空間.
- 4Unicode - 维基百科,自由的百科全书
Unicode,統一碼聯盟官方中文名称为統一碼,是信息技术領域的業界標準。它整理、編碼了世界上大部分的文字系統,使得電腦可以用更為簡單的方式來呈現和處理文字。
- 5Unicode - 維基百科,自由的百科全書
Unicode編碼包含了不同寫法的字,如「ɑ/a」、「強/强」、「戶/户/戸」。 ... 舉例來說,全形格式區段包含了主要的拉丁字母的全形格式,在中文、日文、以及韓文字形 ...