Unicode輸入法

<image>

Unicode輸入法（Unicode input）是指使用者於電腦插入一特定的通用字元集字元；它是一個在輸入實體鍵盤不直接支持的字元的常用方法。Unicode字元可透過在顯示中選擇或於實體鍵盤上輸入特定按鍵組合生成，而這些在一個網頁或文件中生成的字元（不論透過任何一種方法）皆可複製至另一處。相對於ASCII的96個基本字元集（Unicode亦有收錄），Unicode收錄數以十萬計、涵蓋幾近全球的書寫語言及不同標示與符號的字模（字符）。

一個Unicode輸入系統必須提供大量字元（理論上為所有有效的Unicode代碼點），與定義按鍵與其按鍵組合只適合特定地區且有限字元的鍵盤布局有所不同。

<image>

## Unicode編碼

Unicode字元由代碼點分辨，通常以「U+」附加4-6位十六進制數表示，如U+00AE及U+1D310。於基本多文種平面（BMP）中的字元，包括不少漢字、日文文字及符號等現代文字，有4位元的代碼；而甚具歷史的文字，以及不少現代符號與象形文字（諸如顏文字、表情符號、遊戲牌及不少中日韓統一表意文字），則有5位元代碼。

## 可提供性

一個程式只有於能夠搜尋到一個包含該字元字模的字體下顯示特定字元。甚少字體能夠完整覆蓋Unicode所收錄的字元；大多數字體則只包含可支持部份書寫系統下的字模。然而，大多數現代瀏覽器與其他文字處理程式可顯示多語言內容，皆因這些程式透過使用字型替換方式，自動利用其他字體顯示現時所使用的字體未有收錄的字元。使用哪一種字體作替代字體及視乎所使用的軟體與作業系統；部份軟體會於所有已安裝字體搜尋適合的字模，但其他則只會搜尋特定字體。

若果一個程式無法搜尋支持該字元的字體，通常該字元會以一個問號、替代字符（FFFD）或該字體的「.notdef.」字元（有時候或會因其字元外形與豆腐相似而被稱為「tofu」，惟部份字體於方形內打叉字）。現代應用上則使用最後者以表示不支持的字元，而替代字符則只用於編碼錯誤。

## 從螢幕選擇

<image>

不少系統提供可視化方法以選擇Unicode字元。ISO/IEC 14755標準將之定義為一種「螢幕選擇輸入方法」（screen-selection entry method）。

Microsoft Windows自Windows XP起於消費者層面提供一個Unicode版本的字符映射表程式，惟只包含於基本多文種平面（BMP）中的字元。使用者可透過Unicode字元名稱搜索字元，而列表亦可只限於一特定的代碼塊。

市面上亦提供同類的第三方進階工具（當中知名的免費軟體計有BabelMap，該程式支持所有Unicode字元）。

在大多數Linux桌面環境中，亦有提供如gucharmap（GNOME）或kcharselect（KDE）的同等工具。

## 十進制輸入

Microsoft Windows支持使用Alt碼，透過於數字鍵盤輸入的十進制數字轉化為部份Unicode代碼點。例如，除號的代碼點U+00F7及F7等同於十進制下的247，故Alt247可產生「÷」（起首的0為必須；Alt47則基於CP437產生「≈」）。在大部份應用程式中，這方法只適用於少於256的數值。

文字編輯器Vim支持透過兩字元的簡寫（mnemonics，在Vim開發人員中誤稱其為「雙字符組」）定義字符。已安裝的字符集可透過定義任意代碼點、利用十進制說明的自定義簡寫擴展。例如十進制中的9881與十六進制的2699相等，故dig Gr 9881與「Gr」關聯，得出。

## 十六進制輸入

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代碼。以此方法輸入五位長的十六進制代碼（如U+1F937）可能失效。

<image>

若果使用者不願透過修改註冊表方式或在沒有數字鍵盤的裝置（尤其為筆記簿型電腦）實現上述輸入方法，可下載程式「UnicodeInput」。若使用者在輸入文字時觸發該程式，會出現類似右圖的介面。使用者輸入十六進制代碼後按Enter，即可產生所需字元，視窗亦隨之消失。

AutoHotkey代碼支持以輸入方式替代Unicode字元。例如，輸入`Send {U+2014}`會於當前視窗文字欄插入一個長連接號（em dash）。

在部份程式（Word、WordPad及LibreOffice程式）中支持一種較簡單的方法：使用者先輸入字元的十六進制代碼（介乎2-6位十六進制數），再按Alt便可將數值替換成Unicode字元。例如，輸入`fl`再按下上述按鍵組合即可產生字元「ñ」。除非該字元在十六進制表示中長達六位數，否則該代碼不得以任何數值或字符a-f開首，皆因這些字元會被視為需轉換文字代碼的一部分。例如輸入再按下Alt會生成「૱」（U+0AF1），但輸入a0000f1則會生成「añ」。

### macOS

Unicode的十六進制輸入必須激活。在Mac OS 8.5以後版本中，使用者可以選擇「Unicode Hex Input」鍵盤佈局；於OS X Yosemite (10.10)版本中，則可透過「鍵盤」→「輸入來源」添加。

透過按下Option，使用者可輸入四位十六進制數的Unicode代碼點即可顯示對應的字元；此時便可釋放Option鍵。在基本多文種平面（BMP，Basic Multilingual Plane）以外的字元即使超出Unicode十六進制的四位元輸入機制，但使用者可透過代理對（surrogate pairs）方式實現輸入：在按下Option鍵的同時先後鍵入首組代理對、鍵、第二組代理對，最後才釋放Option鍵。

### X11（Linux及其他包括Chrome OS的類Unix系統）

在不少應用程式中，可透過一個或多個方法以直接輸入Unicode字元：

- 按住Ctrl並輸入u及其後的十六進制數，再釋放Ctrl。
- 按下Ctrl並釋放，輸入十六進制數後再按Enter（或Space；在部份系統中則為按下並釋放Shift或Ctrl）。

上述方法受GTK及Qt（甚或其他）應用支持；而在Chrome OS中，則為一個作業系統功能。

### 獨立平台應用

- 在Emacs中，輸入Ctrl8enter或Metainsert-char。
- 在LibreOffice（版本5.1或以上）中，上述的Alt方法對Windows有效。
- 在使用Presto排版引擎的Opera瀏覽器版本（即版本12.xx起）中，輸入擬鍵入的符號或字元之十六進制編號，再按Ctrl（macOS替代快捷鍵為Meta）。
- 在Vim編輯器的插入模式（insert mode）中，使用者先輸入Ctrl u（適用於不長於4位十六進制字元；如需輸入更長者則輸入Ctrl Shift），後輸入擬輸入符號或字元之十六進制數字，系統會將之轉換為符號。（在Microsoft Windows中，使用者可能被要求輸入Ctrl而非Ctrl。）
- 在AutoCAD中，輸入\U2300或三個快捷方式%%c、%%d、%%p。

## HTML

在HTML及XML中，用作生成字符的字符代碼以&及井號為前綴（&#），後加一個分號組成。當中代碼點可以十進位或十六進位顯示，而後者則再加上「x」字（可忽略開首的0字）。部份字元可透過實體名稱顯示。

例如：在HTML及XML中，版權符號©（`U+00A9`）可編碼作：

- ©（十進制代碼點）
- ©（十六進制代碼點）
- ©（實體名稱）

上述受不少接受HTML標記語言的軟體支持，包括Thunderbird及維基百科編輯。