ALT 代码使用哪种字符编码?

Ang*_*gus 6 windows keyboard unicode alt-code

在 Windows 中,使用 ALT+nnn 输入字符时,使用的是哪种字符编码?使用 ALT+0nnn 输入字符时,使用的是哪种字符编码?这些答案如何取决于 Windows 的语言和输入法设置(如果有的话)?代码是否总是在 255 之后重复?

我发现多个网站的信息令人困惑、过时、可能是特定于语言的或错误的。尽管这是众所周知且广泛使用的 Windows 功能,但我似乎找不到任何合理的官方文档。

Red*_*ick 4

我相信这些快捷方式取决于特定程序(例如 Word、Excel 和记事本)使用的库。microsoft.com 上对 Alt 字符代码的引用始终位于特定应用程序或套件的上下文中。

\n\n

Alt+nnn 生成的字符不应依赖于任何 IME,而应遵循确定当前使用的默认代码页的文档、应用程序或 Windows 语言设置。

\n\n

Microsoft 在使用 ASCII 和 ANSI 等术语时很随意,Alt+nnn 的文档反映了这一点。

\n\n

这是 Vista 上命令提示符下的一个小实验

\n\n
c:\\>chcp 437\nActive code page: 437\nc:\\>rem alt+224 \xce\xb1\nc:\\>rem alt+0224 \xc3\xa0\n\nc:\\>chcp 869\nActive code page: 869\nc:\\>rem alt+224 \xce\xb6\nc:\\>rem alt+0224 \xc3\xa0\nc:\\>rem alt 0137 \xe2\x80\xb0\n
Run Code Online (Sandbox Code Playgroud)\n\n

在控制面板中添加希腊语键盘布局并从语言栏中选择希腊语后,写字板中的一项实验表明,ALt+0224 然后从代码页 1253(现代希腊语)生成 \xce\xb0,而 Alt+224 生成 \xce\ xa3(虽然我还没有发现这意味着哪个 DOS/OEM 代码页)

\n\n

我从中推断出

\n\n
    \n
  • Alt+nnn 始终是当前的 DOS(也称为 OEM)代码页
  • \n
  • Alt+0nnn 始终是当前的 Windows 代码页
  • \n
  • 以上不同
  • \n
  • 语言栏可用于更改这些。
  • \n
\n\n

至少对于我尝试过的程序来说是这样。

\n