【发布时间】:2011-09-15 14:30:17
【问题描述】:
我的 Windows cmd CodePage 现在低于 65001。 由于我在做一些Android的东西并且需要使用控制台日志,但是现在忘记了如何更改它。
当使用 chcp 437 将 CodePage 改回时,它可以工作。但是如果我启动一个新的 cmd 窗口,它就会返回。
如何做 chcp 的事情来使其永久化?
【问题讨论】:
我的 Windows cmd CodePage 现在低于 65001。 由于我在做一些Android的东西并且需要使用控制台日志,但是现在忘记了如何更改它。
当使用 chcp 437 将 CodePage 改回时,它可以工作。但是如果我启动一个新的 cmd 窗口,它就会返回。
如何做 chcp 的事情来使其永久化?
【问题讨论】:
Here我找到了更好的解决方案:
- 开始 -> 运行 -> regedit
- 转到 [HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor]
- 添加名为:Autorun 的新字符串值
- 将值更改为“chcp 437”
【讨论】:
在 Windows 10 的 1809 版本中,我通过转到系统的 Language settings,选择 Administrative language settings,单击 Change system locale... 并选中 Beta: Use Unicode UTF-8 for worldwide language support 框,然后重新启动我的电脑,设法永久解决了这个问题。
这种方式适用于所有应用程序,甚至那些我不是从命令提示符启动的应用程序! (这对我来说是必要的,因为我试图从 Atom 编辑 Agda 代码。)
【讨论】:
创建一个包含所有您想要的命令的启动批处理文件。
然后编辑注册表以指向您的启动文件。
http://technet.microsoft.com/en-us/library/cc779439%28WS.10%29.aspx
c:\startup.cmd
@echo off
chcp 437
HKLM\SOFTWARE\Microsoft\Command Processor
AUTORUN="C:\startup.cmd"
【讨论】:
如果您只是在 cmd 中使用 chcp 850 更改活动语言代码(850 = 多语言(拉丁语 I)),命令提示符代码页总是会更改回默认的 437。 尽管我是巴西人(语言代码 850),但我的系统默认语言设置为英语 (437)。 一旦我需要显示一些特殊字符,例如 ã、õ、ç,我发现在 Windows 10 中,在 All Settings > Time & Language > Region & Language 下有(在右上角) 相关设置 - 其他日期、时间和区域设置的链接。从那里您将被重定向到控制面板\时钟、语言和区域。再次点击 Region > Change Location,然后在窗口 Region 的 tab Administrative 中,通过点击按钮 更改系统区域设置 并选择其他使用您需要的代码的代码(在我的例子中,葡萄牙语(巴西)= 代码 850)。 重新启动 Windows 并检查您的命令提示符现在是否设置为新的语言代码(在 cmd 中键入 chcp)。对我来说,它解决了问题。 列表中还有一个拉丁语(单词)选项,我想它也是代码 850。
【讨论】:
可以使用以下命令巧妙地设置默认 CMD/shell 代码页:
REG ADD HKCU\Console\%SystemRoot^%_system32_cmd.exe /v CodePage /t REG_DWORD /d 437
这将使代码页 437 成为您的默认值,但仅在 cmd/shell 中,这意味着操作系统的其余部分是安全的,并且引导环境不会受到影响。 而不是每次打开 cmd 时总是更改代码页,而是 cmd 将从开始时在指定的代码页中打开。
如果您希望使用 regedit.exe 手动编辑它,请注意您必须将代码页值设置为“十进制”(使用单选按钮选择十进制或十六进制输入)。
【讨论】:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage
您可以通过在上面的 reg 键值中编辑窗口中的 OEMCP 键值来永久编辑代码页值
警告:不要这样做,它会使您的系统无法启动。见related。
【讨论】: