Windows下的CMD窗口默认是采用非UTF-8编码的,有时候运行一些UTF-8编写的批处理文件在控制台中的输出就是乱码,

CHCP是MD DOS中的命令,用来显示或设置活动代码页编号的。用法是: CHCP [num] 其中num指定的是代码页的编号。这个参数是可选的,如果,在默认的cmd窗口中,我们只输入chcp,显示的将类似: 活动的代码页: 936

windows cmd 编码格式 java cmd默认编码格式_默认编码

其中 936就是各种编码语言的的编号.

以下是几种常用的编码: 936 GBK(一般情况下为默认编码) 437 美国英语 65001 utf-8

要设置CMD窗口编码格式为UTF-8:

1.运行CMD 2.在命令行中输入 chcp 65001 回车, 控制台会切换到新的代码页.

3.在标题栏点击右键, 打开属性面板, 会看到”选项”标签页下方显示”当前代码页”的编码. 然后选择”字体”标签页, 把字体设置为Lucia Console, 然后确定关闭.

如果要设置回默认编码: 1.运行CMD

2.在命令行中输入 chcp 936 回车, 控制台会切换到新的代码页.

3.这时该代码页的编码已经换为默认, 但可以关闭后重新打开还是其他编码,可以在标题栏点击右键, 打开属性面板, 选择”选项”标签页, 选中”丢弃旧的副本”多选项, 然后确定关闭.

这样设置有个问题是:

如果步骤1.运行CMD窗口是通过开始菜单里启动的,那么会出现:

如果先启动CMD窗口,然后运行UTF-8编码格式bat文件,不会输出乱码;

如果直接双击UTF-8编码格式bat文件运行,启动的CMD窗口编码仍为windows默认,仍然会输出乱码.

解决办法是:

步骤1.运行CMD窗口 通过按住Shift+鼠标右键,启动CMD窗口,

windows cmd 编码格式 java cmd默认编码格式_右键_02

使用命令chcp 65001后,右键CMD窗口标题栏,

windows cmd 编码格式 java cmd默认编码格式_编码格式_03

修改属性里的字体和字体大小.

windows cmd 编码格式 java cmd默认编码格式_默认编码_04

此时即使是双击UTF-8编码格式bat文件也不会输出乱码了.