Windows cmd.exe启动时使用的编码/代码页是什么?

Windows cmd.exe启动时使用的编码/代码页是什么?,windows,command-line,codepages,Windows,Command Line,Codepages,以前有人问过一个几乎相同的问题。回复中对代码页给出了很好的解释,但它并没有回答我心中的问题:当cmd.exe启动时,是什么控制代码页的使用?在我的系统中,它会以某种方式改变。在注册表项HKEY\U LOCAL\U MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage中,有一项OEMCP设置为437。这似乎是cmd.exe在重新启动后使用的CP(如chcp所示),但后来发生了一些变化,在新的cmd.exe窗口中变成了1252。如果使用chcp将

以前有人问过一个几乎相同的问题。回复中对代码页给出了很好的解释,但它并没有回答我心中的问题:当cmd.exe启动时,是什么控制代码页的使用?在我的系统中,它会以某种方式改变。在注册表项HKEY\U LOCAL\U MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage中,有一项OEMCP设置为437。这似乎是cmd.exe在重新启动后使用的CP(如chcp所示),但后来发生了一些变化,在新的cmd.exe窗口中变成了1252。如果使用chcp将其更改为437,则只会影响当前cmd.exe。当我退出并重新启动cmd.exe时,chcp在新窗口中显示1252。启动cmd.exe时,什么控制使用的默认CP?如何更改注册表中的值?对于新的命令窗口,如何防止它被更改和/或将其更改回437?

如果Win+R并运行
cmd.exe/D
修复了它,那么问题在于cmd值…

我的windows syxtem上
cmd.exe
中的默认代码页是437,这是在美国和西欧销售的大多数PC硬件的默认OEM代码页。您可以通过在一个或两个键下添加名为
AutoRun
的字符串条目来更改此默认值:

HKEY_CURRENT_USER\Software\Microsoft\Command Processor

在Windows注册表中,如MS Windows Server 2003支持页上所述。它描述了如何在一个或两个键下添加一个名为
AutoRun
REG_SZ
字符串条目,该值包含启动
cmd.exe
时自动运行的命令

例如,要使代码页1252成为默认值,请在导航到
regedit.exe
实用程序中的其中一个键后,创建一个名为
AutoRun
的新字符串值,然后将其值设置为命令
chcp 1252


尽管微软的文章只指出它适用于Windows Server 2003,但这项技术也适用于我测试它的Win XP系统,因此可能也适用于Vista和Win 7。

@user1462402:Win+R意味着按住Windows键并按R键。换句话说,Anders建议您使用开始菜单运行框打开
cmd.exe/D
.FWIW,在我的键盘上,Windows键上有一个Windows标志的填充轮廓(并且没有说
Win
或任何东西)。437确实是大多数Windows命令环境的默认设置。我想知道什么是重置OP?相关问题可能也很有趣。
HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor