Unicode標誌
Unicode輸入法 (英語:Unicode input )是指用戶於電腦插入一特定的通用字元集字元 ;它是一個在輸入實體鍵盤 不直接支持的字元的常用方法。Unicode字元可透過在顯示中選擇或於實體鍵盤上輸入特定按鍵組合生成,而這些在一個網頁或文件中生成的字元(不論透過任何一種方法)皆可複製 至另一處。相對於ASCII 的96個基本字元集 (Unicode亦有收錄),Unicode收錄數以十萬計、涵蓋幾近全球的書寫語言及不同標示與符號的字模(字符)。[ 1]
一個Unicode輸入系統必須提供大量字元(理論上為所有有效的Unicode代碼點),與定義按鍵與其按鍵組合只適合特定地區 且有限字元的键盘布局 有所不同。
圖為KCharSelect 字符映射工具,正顯示Unicode數學運算子 子集
Unicode編碼
Unicode字元由代碼點分辨,通常以「U+」附加4-6位十六進制數 表示,如U+00AE及U+1D310。於基本多文種平面 (BMP)中的字元,包括不少漢字、日文文字及符號等現代文字 ,有4位元的代碼;而甚具歷史的文字,以及不少現代符號與象形文字(諸如颜文字 、表情符號 、遊戲牌 及不少中日韓統一表意文字 ),則有5位元代碼。
可提供性
一個程式只有於能夠搜尋到一個包含該字元字模的字體 下顯示特定字元。[ 2] 甚少字體能夠完整覆蓋Unicode所收錄的字元;大多數字體則只包含可支持部份書寫系統 下的字模 。然而,大多數現代瀏覽器與其他文字處理程式可顯示多語言內容,皆因這些程式透過使用字型替換 方式,自動利用其他字體顯示現時所使用的字體未有收錄的字元。使用哪一種字體作替代字體及視乎所使用的軟體與操作系統;部份軟體會於所有已安裝字體搜尋適合的字模,但其他則只會搜尋特定字體。
若果一個程式無法搜尋支持該字元的字體,通常該字元會以一個問號、替代字符 (U+FFFD � )或該字體的「.notdef. 」字元(有時候或會因其字元外形與豆腐相似而被稱為「tofu」,惟部份字體於方形內打叉字)。[ 3] 現代應用上則使用最後者以表示不支持的字元,而替代字符則只用於編碼錯誤。
從屏幕選擇
GNOME中的字符映射表
不少系統提供可視化方法以選擇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 +0 2 4 7 可產生「÷」(起首的0為必須;Alt +2 4 7 則基於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之視窗
若果用戶不願透過修改註冊表方式或在沒有數字鍵盤的裝置(尤其為筆記簿型電腦)實現上述輸入方法,可下載程式「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 +x 8 ↵ 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 及維基百科編輯。
參見
參考資料
Unicode 码位 字符
處理
組合字符 使用 相關標準 相關主題