当我在Windows中打开cmd.exe时,它使用的是什么编码?

如何检查当前使用的编码?这取决于我的区域设置还是有任何环境变量需要检查?

当您以某种编码方式键入文件时会发生什么?有时我得到乱码(不正确的编码使用),有时它的工作。然而,只要我不知道发生了什么,我就不相信任何事情。有人能解释一下吗?


当前回答

命令CHCP显示当前代码页。有三位数字:8xx,不同于Windows 12xx。因此,输入纯英语文本不会看到任何区别,但扩展的代码页(如西里尔字母)将被错误地打印出来。

其他回答

您可以通过创建一个文件%HOMEPATH%\init.cmd来控制代码页。 我说:

@ECHO OFF
CHCP 65001 > nul

为了回答你的第二个问题,关于编码是如何工作的,Joel Spolsky写了一篇很棒的介绍性文章。强烈推荐。

命令CHCP显示当前代码页。有三位数字:8xx,不同于Windows 12xx。因此,输入纯英语文本不会看到任何区别,但扩展的代码页(如西里尔字母)将被错误地打印出来。

Type

chcp

查看您当前的代码页(正如Dewfy已经说过的)。

Use

nlsinfo

查看所有已安装的代码页,并找出代码页编号的含义。

您需要安装Windows Server 2003资源工具包(适用于Windows XP)才能使用nlsinfo。

在Java中,我使用编码“IBM850”来写文件。这就解决了问题。