当用DOS命令窗口写java代码进行编译时出现乱码、错误情况,如下图:
注:我的cmd当前代码页为936简体中文(GB2312,ANSI),希望能帮助同样问题的人。
有三种方式解决,亲测有效。
第一种:通过输入chcp 65001命令修改当前代码页为UTF-8,即可输出中文字符样式,不过是临时有效的,退出命令窗口再进入当前代码页恢复为936
第二种:另存为java文件,将UTF-8的编码格式改为ANSI
第三种:永久有效的方式,win+r,输入regedit打开注册表,按顺序找到该目录HKEY_LOCAL_MACHINE\SOFEWARE\Microsoft\Command Processor,并新建字符串值
这种方式跟第一种类似,但进入命令窗口会自动更改为65001,当前代码页也是一样
备注:代码页和编码对照表如下
65001 | UTF-8 |
936 | 简体中文(ANSI) |
950 | 繁体中文BIG5 |
437 | 美国/加拿大英语 |
866 | 俄文 |
总结:三种方法对解决问题都有效,但第一、三种方法对中文符号识别还是会错误、乱码,建议使用第二种为佳,根据自己的当前代码页更改java文件的编码格式。