UTF疑难解答:不等号:≠,╘

UTF troubleshooting: inequality signs: ≠,╘

Alt+2260 = = U+2260

等于 吗?谁能解释为什么会这样?

TL;DR

该数字被视为十进制模 256。2260 % 256 = 212,并且 是代码页 437 中的代码点 212

您需要使用十六进制小键盘而不是普通的 Alt 代码


由于向后兼容性问题,

Windows 默认禁用十六进制小键盘。按 Alt+Num 仅在 ANSI or OEM code pages 中生成相应的字符,而 对大于255.

一些应用程序确实支持更大的值,但将它们视为小数,就像 Alt codes were always treated, which means Alt+2260 will produce U+08D4 (0x08D4 = 2260) 而不是 U+2260 一样。其他一些应用程序只取前 3 位或后 3 位数字。但默认情况下,在几乎所有应用程序中,如果您输入任何大值,则 仅将实际值的低字节作为代码点 ,即模 256

所以按Alt+2260将等同于Alt+212 因为 2260 % 256 = 212。当你 运行 US Windows 使用 code page 437 for the OEM code page then at code point 212 is ╘ (U+2258) 就是你看到的

要生成 ≠ (U+2260),您需要使用十六进制小键盘,方法是在 HKCU\Control Panel\Input Method 中创建一个名为 EnableHexNumpad 且类型为 REG_SZ 的注册表项,将其值设置为 1然后重启。之后你可以输入字符 Alt++ 然后 Alt+Unicode valueAlt++2260 在你的情况下)。 +Alt 之后对于区分十进制 ANSI/OEM 代码点和 Unicode 代码点非常重要。如果您使用 MS Word 等其他应用程序,那么还有其他更好的方法来插入 Unicode 字符

阅读更多信息