之前已经有类似的问题被提出过。在回答中给出了关于代码页的良好解释,但并没有回答我心中的问题:当启动cmd.exe时,是什么控制了使用的代码页?在我的系统上,它会以某种方式被更改。在注册表键HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage中,有一个名为OEMCP的项目,其值设置为437。这似乎是cmd.exe使用的代码页(如chcp所示),在重新启动后,但某些情况下会变成1252。如果我用chcp将其更改为437,则只影响当前的cmd.exe。当我退出并重新启动cmd.exe时,新窗口显示的chcp为1252。是什么控制了启动cmd.exe时默认使用的代码页?它是如何从注册表中的值更改的?我该如何防止其更改和/或将其更改回437以供新的命令窗口使用?