Unicode輸入法
此條目需要補充更多來源。 (2020年8月3日) |
Unicode輸入法(英語:Unicode input)是指用戶於電腦插入一特定的通用字元集字元;它是一個在輸入實體鍵盤不直接支援的字元的常用方法。Unicode字元可透過在顯示中選擇或於實體鍵盤上輸入特定按鍵組合生成,而這些在一個網頁或檔案中生成的字元(不論透過任何一種方法)皆可複製至另一處。相對於ASCII的96個基本字元集(Unicode亦有收錄),Unicode收錄數以十萬計、涵蓋幾近全球的書寫語言及不同標示與符號的字模(字元)。[1]
一個Unicode輸入系統必須提供大量字元(理論上為所有有效的Unicode代碼點),與定義按鍵與其按鍵組合只適合特定地區且有限字元的鍵盤配置有所不同。
Unicode編碼
[編輯]Unicode字元由代碼點分辨,通常以「U+」附加4-6位十六進制數表示,如U+00AE及U+1D310。於基本多文種平面(BMP)中的字元,包括不少漢字、日文文字及符號等現代文字,有4位元的代碼;而甚具歷史的文字,以及不少現代符號與象形文字(諸如顏文字、表情符號、遊戲牌及不少中日韓統一表意文字),則有5位元代碼。
可提供性
[編輯]一個程式只有於能夠搜尋到一個包含該字元字模的字體下顯示特定字元。[2]甚少字體能夠完整覆蓋Unicode所收錄的字元;大多數字體則只包含可支援部份書寫系統下的字模。然而,大多數現代瀏覽器與其他文字處理程式可顯示多語言內容,皆因這些程式透過使用字型替換方式,自動利用其他字體顯示現時所使用的字體未有收錄的字元。使用哪一種字體作替代字體及視乎所使用的軟件與操作系統;部份軟件會於所有已安裝字體搜尋適合的字模,但其他則只會搜尋特定字體。
若果一個程式無法搜尋支援該字元的字體,通常該字元會以一個問號、替代字元(U+FFFD � )或該字體的「.notdef.」字元(有時候或會因其字元外形與豆腐相似而被稱為「tofu」,惟部份字體於方形內打叉字)。[3]現代應用上則使用最後者以表示不支援的字元,而替代字元則只用於編碼錯誤。
從螢幕選擇
[編輯]不少系統提供可視化方法以選擇Unicode字元。ISO/IEC 14755標準將之定義為一種「螢幕選擇輸入方法」(screen-selection entry method)[4]。
Microsoft Windows自Windows XP起於消費者層面提供一個Unicode版本的字元對應表程式,惟只包含於基本多文種平面(BMP)中的字元。用戶可透過Unicode字元名稱搜尋字元,而列表亦可只限於一特定的代碼塊。[5]
市面上亦提供同類的第三方進階工具(當中知名的免費軟件計有BabelMap,該程式支援所有Unicode字元)[6]。
在大多數Linux桌面環境中,亦有提供如gucharmap(GNOME)或kcharselect(KDE)的同等工具[7]。
十進制輸入
[編輯]Microsoft Windows支援使用Alt碼,透過於數字鍵盤輸入的十進制數字轉化為部份Unicode代碼點。例如,除號的代碼點U+00F7及F7等同於十進制下的247,故Alt+0247可產生「÷」(起首的0為必須;Alt+247則基於CP437產生「≈」)。在大部份應用程式中,這方法只適用於少於256的數值。
文字編輯器Vim支援透過兩字元的簡寫(mnemonics,在Vim開發人員中誤稱其為「雙字元組」)定義字元。已安裝的字元集可透過定義任意代碼點、利用十進制說明的自訂簡寫擴展。例如十進制中的9881與十六進制的2699相等,故dig Gr 9881
與「Gr」關聯,得出U+2699 ⚙ GEAR。
十六進制輸入
[編輯]ISO/IEC 14755第5.1條描述一種「簡單方法」(Basic method),當中。大多數現代電腦系統有一些可模擬該描述的方法,惟部分只支援最多四位數值(意味只能支援基本多文種平面)。
Microsoft Windows
[編輯]用戶可透過於註冊表登錄器中,搜尋HKEY_CURRENT_USER\Control Panel\Input Method
目錄並添加名為EnableHexNumpad
的字串(REG_SZ)值,將數值設為1
即可啟用十六進制Unicode輸入法。該操作需用戶再次登入系統後方能生效(在Windows Vista或以前版本中,用戶需將電腦重新啟動,方能啟用輸入法)。
功能啟用後,用戶可透過先按下Alt,並於數字鍵盤鍵入+,再輸入十六進制代碼(透過數字鍵盤輸入0-9及/或字母鍵輸入A-F),最後釋放Alt鍵即可輸入Unicode代碼。[2]以此方法輸入五位長的十六進制代碼(如U+1F937
)可能失效。
若果用戶不願透過修改註冊表方式或在沒有數字鍵盤的裝置(尤其為筆記簿型電腦)實現上述輸入方法,可下載程式「UnicodeInput」[8]。若用戶在輸入文字時觸發該程式,會出現類似右圖的介面。用戶輸入十六進制代碼後按↵ Enter,即可產生所需字元,視窗亦隨之消失。
AutoHotkey代碼支援以輸入方式替代Unicode字元。例如,輸入Send {U+2014}
會於當前視窗文字欄插入一個長連接號(em dash)。[9]
在部份程式(Word、WordPad及LibreOffice程式)中支援一種較簡單的方法:用戶先輸入字元的十六進制代碼(介乎2-6位十六進制數),再按Alt+X便可將數值替換成Unicode字元。例如,輸入fl
再按下上述按鍵組合即可產生字元「ñ」。除非該字元在十六進制表示中長達六位數,否則該代碼不得以任何數值或字元a-f開首,皆因這些字元會被視為需轉換文字代碼的一部分。例如輸入afl
再按下Alt+X會生成「૱」(U+0AF1),但輸入a0000f1
則會生成「añ」。
macOS
[編輯]Unicode的十六進制輸入必須啟用。在Mac OS 8.5以後版本中,用戶可以選擇「Unicode Hex Input」鍵盤佈局;於OS X Yosemite (10.10)版本中,則可透過「鍵盤」→「輸入來源」添加。
透過按下⌥ Option,用戶可輸入四位十六進制數的Unicode代碼點即可顯示對應的字元;此時便可釋放⌥ Option鍵。[10]在基本多文種平面(BMP,Basic Multilingual Plane)以外的字元即使超出Unicode十六進制的四位元輸入機制,但用戶可透過代理對(surrogate pairs)方式實現輸入:在按下⌥ Option鍵的同時先後鍵入首組代理對、+鍵、第二組代理對,最後才釋放⌥ Option鍵。
X11(Linux及其他包括Chrome OS的類Unix系統)
[編輯]在不少應用程式中,可透過一個或多個方法以直接輸入Unicode字元:
- 按住Ctrl+⇧ Shift並輸入u及其後的十六進制數,再釋放Ctrl+⇧ Shift。
- 按下Ctrl+⇧ Shift+u並釋放,輸入十六進制數後再按↵ Enter(或Space;在部份系統中則為按下並釋放⇧ Shift或Ctrl)。[11]
上述方法受GTK及Qt(甚或其他)應用支援;而在Chrome OS中,則為一個操作系統功能[11]。
獨立平台應用
[編輯]- 在Emacs中,輸入Ctrl+x8↵ Enter或Meta+x
insert-char
。 - 在LibreOffice(版本5.1或以上)中,上述的Alt+X方法對Windows有效。
- 在使用Presto排版引擎的Opera瀏覽器版本(即版本12.xx起)中,輸入擬鍵入的符號或字元之十六進制編號,再按Ctrl+⇧ Shift+x(macOS替代快捷鍵為Meta+⇧ Shift++x)。
- 在Vim編輯器的插入模式(insert mode)中,用戶先輸入Ctrl+V u(適用於不長於4位元十六進制字元;如需輸入更長者則輸入Ctrl+V ⇧ Shift+U),後輸入擬輸入符號或字元之十六進制數字,系統會將之轉換為符號。(在Microsoft Windows中,用戶可能被要求輸入Ctrl+Q而非Ctrl+V。[12])
- 在AutoCAD中,輸入
\U2300
或三個捷徑%%c
、%%d
、%%p
。
HTML
[編輯]在HTML及XML中,用作生成字元的字元代碼以&及井號為前綴(&#),後加一個分號(;)組成。當中代碼點可以十進制或十六進制顯示,而後者則再加上「x」字(可忽略開首的0字)。部份字元可透過實體名稱顯示。
例如:在HTML及XML中,版權符號©(U+00A9
)可編碼作:
©
(十進制代碼點)©
(十六進制代碼點)©
(實體名稱)
上述受不少接受HTML標記語言的軟件支援,包括Thunderbird及維基百科編輯。
參見
[編輯]參考資料
[編輯]- ^ Lafontaine, Sylvain. Unicode vs ASCII difference and benefits. MSDN. 2012-02-17 [2014-02-28]. (原始內容存檔於2022-01-21) (美國英語).
- ^ 2.0 2.1 Andrew Marcuse. How to enter Unicode characters in Microsoft Windows. [2012-09-13]. (原始內容存檔於2022-05-15) (美國英語).
- ^ What symbol is the square box shown for non-representable Unicode characters?. Quora. [2020-08-02] (美國英語).
- ^ ISO/IEC 14755:1997 Information technology -- Input methods to enter characters from the repertoire of ISO/IEC 10646 with a keyboard or other input device. ISO. [2017-10-14]. (原始內容存檔於2021-06-19) (美國英語).
- ^ Andy Rathbone. How to Insert Special Characters with Windows 7 Character Map. dummies.com. [2018-12-05]. (原始內容存檔於2021-06-15) (美國英語).
- ^ Ancient Signs: The Alphabet & the Origins of Writing. books.google.com. [2018-12-05] (美國英語).[失效連結]
- ^ Peck, Akkana. Mastering Characters Sets in Linux (Weird Characters, part 2). LinuxPlanet. 2009-11-25 [2018-12-05]. (原始內容存檔於2019-05-10) (美國英語).
- ^ Opris, Elena. UnicodeInput Review. Softpedia. [2018-11-28]. (原始內容存檔於2021-11-22) (美國英語).
- ^ Send Keys & Clicks. AutoHotkey Foundation LLC. Copyright © 2003–2018. [2020-08-02]. (原始內容存檔於2022-05-14) (英語).
- ^ Antony. typing special and accented characters. MacCentre701. 2006-12-20 [2020-08-02]. (原始內容存檔於2008-03-09) (英語).
- ^ 11.0 11.1 Jack, Busch. Type Special Characters with a Chromebook (Accents, Symbols, Em Dashes). groovypost.com. 2018-04-20 [2020-02-28]. (原始內容存檔於2021-12-04) (美國英語).
- ^ Vim documentation: gui_w32. [2020-08-02]. (原始內容存檔於2021-09-09) (美國英語).