为什么 Unicode 字符 (U+2295) 显示为 (U+2248)

为什么 Unicode 字符 (U+2295) 显示为 (U+2248)

我打开记事本,然后按住+2295Alt 键输入,然后松开 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包含一个名为 的字符串类型 ( 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 中使用的字符集。

相关内容