為什麼 Unicode 字元 (U+2295) 顯示為 (U+2248)

為什麼 Unicode 字元 (U+2295) 顯示為 (U+2248)

我打開記事本,然後+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 中使用的字元集。

相關內容