![為什麼 Unicode 字元 (U+2295) 顯示為 (U+2248)](https://rvso.com/image/1476416/%E7%82%BA%E4%BB%80%E9%BA%BC%20Unicode%20%E5%AD%97%E5%85%83%20(U%2B2295)%20%E9%A1%AF%E7%A4%BA%E7%82%BA%20(U%2B2248).png)
我打開記事本,然後+2295
按住 Alt 鍵鍵入,然後釋放 Alt 鍵。我用 Unicode 編碼儲存檔案。然而輸出不是http://www.fileformat.info/info/unicode/char/2295/index.htm正如預期的那樣,但是這個http://www.fileformat.info/info/unicode/char/2248/index.htm反而。我究竟做錯了什麼?尋找一些指點。
對於其他遇到此問題的人:請注意EnableHexNumpad
需要是新的字串類型(請參閱答案中連結的 Wiki 頁面)
答案1
這維基百科條目Unicode 輸入法列出了其工作的必要先決條件:
此輸入法的先決條件是登錄項目
HKEY_CURRENT_USER\Control Panel\Input Method
包含一個名為 string 類型 (REG_SZ
) 的值EnableHexNumpad
,該值具有值資料1
。使用者需要在 Windows 8.1/8.0、Windows 7 和 Vista 上登出/登錄,或在編輯註冊表後重新啟動較早的系統,此輸入法才能開始工作。
在我的電腦上新增此註冊表項並重新啟動後,輸入的工作方式與廣告中的一樣。
答案2
要回答為什麼會有這個特定值的問題:
使用標準輸入法時,十進制數取模 256,然後如果沒有前導零,則解釋為 OEM 碼頁*;如果有前導零,則解釋為 ANSI 代碼頁。所以,步驟是:
- 2295 模 256 = 247
- 247 [0xF7] 是 OEM 代碼頁中的 U+2295
此時具有 U+2295 的字元集是代碼頁 437、737、770、772、774、860、861、862、863、864、865、CWI 和 MIK。
(「2295」和「2248」都以 22 開頭的事實是一個有趣的巧合,僅此而已)
* 注意:「ANSI 代碼頁」與 ANSI 關係不大,只是代碼頁 1252 是基於後來成為 ISO 8859-1 的草案[其他一些代碼頁也有類似的起源]。它是與目前區域設定關聯的 8 位元字元集,而「OEM 碼頁」是與區域設定關聯的另一種字元集,通常是該國家/地區的 MS-DOS 中使用的字元集。