在编译 java 或者运行 java 类、jar 文件时,我们往往会遇到编码错误导致的问题,例如:程序中中文编码的输入输出变为乱码,编译时报错“无法识别的 GBK 字符” 等。这些问题都是由于 JDK 的程序 java.exe 和 javac.exe 默认以 GBK 编码运行导致的。
而我们常见的代码编辑器或集成开发软件(如:EditPlus、IDEA、Eclipse)则默认以 Unicode utf-8 的编码格式运行,编码方式的不同就导致了程序的异常。
我们通过加入参数来强制 java 程序以 utf8 编译或运行:
编译时,引入 -encoding utf8 参数:
javac -encoding utf8 <java 源文件>
执行时,引入 -Dfile.encoding=utf8 参数:
java -Dfile.encoding=utf8 <java 类名>
这样就可以解决这类问题。