在启动时使用什么编码/代码页的cmd.exe?(What encoding/code page is

2019-10-16 21:15发布

一个几乎相同的问题被问过。 的代码页了很好的解释在回复中给出,但它没有回答自己心中的问题:当CMD.EXE开始什么控制使用的代码页? 在我的系统,它就会以某种方式改变了。 在注册表项HKEY_LOCAL_MACHINE \ SYSTEM \ CURRENTCONTROLSET \控制\ NLS \代码页,存在被设定为437的项OEMCP这似乎是由cmd.exe的所使用的CP新鲜重新启动后(通过CHCP如图所示),但后来的东西改变它,它在新的cmd.exe窗口变为1252。 如果我用CHCP将其更改为437,只影响当前的cmd.exe。 当我退出,并在新窗口中重新启动CMD.EXE,CHCP显示1252。 什么控制时开始的cmd.exe使用默认的CP? 它是怎样到达从注册表中的值改变了吗? 如何保持它得到改变和/或更改回437新的命令窗口?

Answer 1:

在默认的代码页cmd.exe在我的Windows syxtem是437,这是从我读过的美国(US)和西欧销售的大多数PC硬件的默认OEM代码页。 您可以通过添加一个名为字符串项更改此默认AutoRun一个或两个键下:

HKEY_CURRENT_USER\Software\Microsoft\Command Processor

HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor

在Windows注册表中,如记录在此 MS Windows Server 2003的支持页面。 它描述了如何添加一个REG_SZ名为字符串项AutoRun一个或两个键与你想的时候自动运行一个包含值的命令下cmd.exe启动。

例如,为了使代码页1252默认情况下,新建一个名为字符串值AutoRun导航到在其中一个密钥后regedit.exe实用程序,然后将其值设置为命令chcp 1252之后。

虽然MS文章仅表示它适用于Windows Server 2003,该技术也工作我测试的Win XP的系统上,因此可能会也与Vista和Win 7的工作。



Answer 2:

如果WIN + R和运行cmd.exe /D修复它,那么问题是在cmd 自动运行值...



文章来源: What encoding/code page is cmd.exe using when it is started?