在 Ubuntu(Linux)下使用 Java 编译(javac) 时,可以通过 -encoding 参数来指定源码文件的编码。
javac -encoding UTF-8 Hello.java
如果是多个文件或整个目录:
javac -encoding UTF-8 *.java
或:
javac -encoding GBK -d out src/*.java
参数说明:
-encoding UTF-8:指定源文件编码-d out:指定编译输出目录运行时一般不用指定源码编码,但可指定 JVM 默认字符集:
java -Dfile.encoding=UTF-8 Hello
常用于防止中文乱码。
在 pom.xml 中:
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
</properties>
或在 compiler 插件中:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
tasks.withType(JavaCompile) {
options.encoding = 'UTF-8'
}
locale
常见推荐:
export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8
file Hello.java
.java 文件可能是 GBK如果你愿意,可以告诉我:
我可以给你更精确的方案。