是否永久更改CMD中的代码页?

是否永久更改CMD中的代码页?,cmd,codepages,Cmd,Codepages,我的Windows cmd代码页现在低于65001。 因为我在做一些Android的东西,需要使用控制台日志,但现在忘了如何更改它 当使用chcp 437将代码页更改回原处时,它可以正常工作。但如果我启动一个新的cmd窗口,它会返回 如何做chcp的事情,使其成为永久性的 创建一个包含所有所需命令的启动批处理文件 然后编辑注册表以指向启动文件 c:\startup.cmd @echo off chcp 437 HKLM\SOFTWARE\Microsoft\Command Processor

我的Windows cmd代码页现在低于65001。 因为我在做一些Android的东西,需要使用控制台日志,但现在忘了如何更改它

当使用chcp 437将代码页更改回原处时,它可以正常工作。但如果我启动一个新的cmd窗口,它会返回


如何做chcp的事情,使其成为永久性的

创建一个包含所有所需命令的启动批处理文件

然后编辑注册表以指向启动文件

c:\startup.cmd

@echo off
chcp 437
HKLM\SOFTWARE\Microsoft\Command Processor

AUTORUN=“C:\startup.cmd”

HKEY\U LOCAL\U MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage

您可以通过在上述注册表键值中编辑windows中的OEMCP键值来永久编辑代码页值


警告:不要这样做,这会使系统无法启动。看

我找到了一个更好的解决方案:

  • 开始->运行->重新编辑
  • 转到[HKEY\U LOCAL\U MACHINE\Software\Microsoft\Command Processor]
  • 添加名为“自动运行”的新字符串值
  • 将该值更改为“chcp 437”

  • 如果仅在cmd中使用chcp 850更改活动语言代码(850=多语言(拉丁语I)),则命令提示代码页始终更改回默认的437。 我的系统默认语言设置为英语(437),尽管我是巴西人(语言代码850)。 一旦我需要显示一些特殊字符,如õ、õ、ç,我发现在Windows 10中,在所有设置>时间和语言>区域和语言下(右上角)有一个链接,用于相关设置-附加日期、时间和区域设置。从那里,您将被重定向到控制面板\时钟、语言和区域。再次单击区域>更改位置,在窗口区域的选项卡管理,通过单击按钮更改系统区域设置并选择使用所需代码的其他代码(在我的情况下,葡萄牙语(巴西)=代码850),更改非Unicode程序的语言重新启动Windows并检查您的命令提示符现在是否设置为新的语言代码(在cmd中键入chcp)。对我来说,它解决了问题。
    列表中还有一个拉丁语(单词)选项,我想也是代码850。

    在1809版本的Windows 10中,我通过转到系统的
    语言设置,选择
    管理语言设置
    ,永久解决了这个问题,单击
    更改系统区域设置…
    并选中
    测试版:使用Unicode UTF-8获得全球语言支持
    框,然后重新启动我的电脑

    这样,它适用于所有应用程序,甚至那些我不是从命令提示符启动的应用程序!
    (这对我来说是必要的,因为我试图从Atom编辑Agda代码。)

    可以使用以下命令巧妙地设置默认CMD/shell代码页:

    REG ADD HKCU\Console\%SystemRoot^%_system32_cmd.exe /v CodePage /t REG_DWORD /d 437
    
    这将使代码页437成为您的默认值,但仅在cmd/shell中,这意味着操作系统的其余部分是安全的,并且引导环境未被触及。 cmd不会在每次打开时总是更改代码页,而是从一开始就在指定的代码页中打开


    如果您希望使用regedit.exe手动编辑,请注意必须将代码页值设置为“十进制”(使用单选按钮选择十进制或十六进制输入)。

    如果不这样做,系统将无法启动。看这个答案可能会被删除。这很危险!这是最好的解决方案,简单地解决了这个问题。另一方面:我强烈建议任何人不要使用HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage\OEMCP设置默认shell,因为它在引导时指定的不是cmd.exe环境,而是完整的windows shell环境。这意味着所有命令都会在此环境中调用。该键指定了非UNICODE回退环境,因此将其设置为UTF代码页(例如UTF-8)将无意中导致无法旋转的窗口。@Nikos对于熟悉在计算机或Windows注册表上保存数据的方法的人来说,这很容易猜到。注册表项通常用于管理和分类数据/选项,而不是自行保存数据或值。这是现代Windows版本的正确和最佳选项。