cmd编码

我本地有一个utf-8编码的纯文本文件,我们使用type命令查看一下,发现是乱码

(type命令的作用是显示文本文件的内容)

这是因为cmd窗口的编码是简体中文的。

在cmd窗口输入chcp

CHCP是一个计算机指令,能够显示或设置活动代码页编号。

不加参数键入 CHCP 显示活动代码页编号,如上图所示活动代码页是936,代表简体中文

那么如何才能使文件内容正常显示呢?

修改cmd窗口的编码即可。utf-8的活动代码页为65001,所以输入 chcp 65001回车。再次查看文件内容,显示正常。

有时重新打开cmd发现不是默认编码,要修改回默认编码可以右键打开cmd窗口属性,勾选丢弃旧的副本,确认,重新打开即可

但是我测试时发现两个问题

将文件改为带有BOM的utf8后查看,内容最前面有一个方块,这个是正常的,因为带有BOM的utf8编码会在文件开头加一些字符

然后再将文件编码改回到utf8编码,再次查看发现文件末尾有一个奇怪的字符,这个就不知道原理了。

 关闭当前cmd窗口,再重新打开一个cmd窗口,在代码页为65001的情况下查看,又是正常的了,文件末尾没有奇怪字符

 

看到有人说是因为还需要修改字体,而我的win10打开cmd窗口的属性,字体里并没有要选择的True Type字体"Lucida Console"

另一个问题,utf8编码的java源文件查看正常,可是却编译不过去
 

这两个问题留待解决吧

刚才搞坏了控制台,输入chcp 65001的时候cmd窗口变得很小,字体更小,还总是提示"点的大小应介于5和72之间"

我先想到恢复默认设置,网上说修改注册表,在HKEY_CURRENT_USER Console %SystemRoot%_system32_cmd.exe里,删除文件夹 %SystemRoot%_system32_cmd.exe

可是这么操作后,问题并没有解决,之后百度“点的大小应介于5和72之间”,发现是因为字体设置成点阵字体了,把默认值设置成新宋体即可

原文地址:https://www.cnblogs.com/shizunatsu/p/14161410.html