【问题标题】:Change CodePage in CMD permanently?永久更改 CMD 中的 CodePage?
【发布时间】:2011-09-15 14:30:17
【问题描述】:

我的 Windows cmd CodePage 现在低于 65001。 由于我在做一些Android的东西并且需要使用控制台日志,但是现在忘记了如何更改它。

当使用 chcp 437 将 CodePage 改回时,它可以工作。但是如果我启动一个新的 cmd 窗口,它就会返回。

如何做 chcp 的事情来使其永久化?

【问题讨论】:

    标签: cmd codepages


    【解决方案1】:

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

    1. 开始 -> 运行 -> regedit
    2. 转到 [HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor]
    3. 添加名为:Autorun 的新字符串值
    4. 将值更改为“chcp 437”

    【讨论】:

    • @Nikos 对于任何熟悉将数据保存在计算机或 Windows 注册表中的方法的人来说,这很容易猜到。注册表项通常用于管理和分类数据/选项,而不是自己保存数据或值。
    【解决方案2】:

    在 Windows 10 的 1809 版本中,我通过转到系统的 Language settings,选择 Administrative language settings,单击 Change system locale... 并选中 Beta: Use Unicode UTF-8 for worldwide language support 框,然后重新启动我的电脑,设法永久解决了这个问题。

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

    【讨论】:

    • 这是现代 Windows 版本的正确和最佳选择。
    【解决方案3】:

    创建一个包含所有您想要的命令的启动批处理文件。

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

    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"

    【讨论】:

      【解决方案4】:

      如果您只是在 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。

      【讨论】:

      • 这是最好的解决方案,轻描淡写地解决了问题。
      【解决方案5】:

      可以使用以下命令巧妙地设置默认 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\OEMCP 设置默认外壳,因为这指定的不是 cmd.exe 环境,而是完整的窗口引导时的 shell 环境。这意味着在此环境中会调用所有命令。该键指定 NON-UNICODE 后备环境,因此将其设置为 UTF 代码页(例如 UTF-8)会无意中导致 Windows 无法启动。
      【解决方案6】:

      HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage

      您可以通过在上面的 reg 键值中编辑窗口中的 OEMCP 键值来永久编辑代码页值

      警告:不要这样做,它会使您的系统无法启动。见related

      【讨论】:

      猜你喜欢
      • 2011-12-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-20
      • 2020-03-16
      相关资源
      最近更新 更多