Ubuntu下Java编译时编码问题的处理
一、先统一Ubuntu系统的语言环境
localeexport LANG=en_US.UTF-8,export LC_ALL=en_US.UTF-8/etc/default/locale(或相应发行版的环境配置),设置 LANG=en_US.UTF-8、LC_ALL=en_US.UTF-8,然后重启或重新登录二、在编译期显式指定源文件编码
javac -encoding UTF-8 YourFile.javajavac -encoding GBK YourFile.javajavac -source 11 -target 11 -encoding UTF-8 YourFile.java三、在运行期统一JVM文件编码
java -Dfile.encoding=UTF-8 YourMainString.getBytes()、InputStreamReader 未指定编码时的行为、控制台输出等),应与源文件编码保持一致。四、在代码中显式指定I/O编码
BufferedReader r = new BufferedReader(new InputStreamReader(new FileInputStream("data.txt"), "UTF-8"));五、在IDE与构建工具中统一编码
pom.xml 中统一编译与资源编码:
<properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding></properties>javac 任务中增加 encoding 属性(如 <compilerarg line="-encoding UTF-8"/>)。