Jos*_*ent 1 java testing encoding utf-8 maven
您好,我的项目编码有问题。
\n\n当我从 eclipse 运行 JUnit 测试时,没有失败。问题是当我执行 maven > clean maven > install 时,其中一项测试失败。
\n\n我有这个字符串:“ADMINISTRACI\xc3\x93N”,当我从 Eclipse 运行 JUnit 时一切都很好,但是我已经打印了该变量,当 Maven 进行测试时,该字符串的值是:“管理 \xef\xbf\xbdN"。
\n\n我已经将 Eclipse 中编码的每个属性更改为 UTF-8。\n-以这种方式配置 pom:
\n\n (...)\n <project>\n <properties>\n <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>\n (...)\n </properties>\n </project>\n (...)\n <plugins>\n <plugin>\n <groupId>org.apache.maven.plugins</groupId>\n <artifactId>maven-compiler-plugin</artifactId>\n <version>3.6.0</version>\n <configuration>\n <encoding>UTF-8</encoding>\n <source>1.7</source>\n <target>1.7</target>\n </configuration>\n </plugin>\n </plugins>\n (...)\n
Run Code Online (Sandbox Code Playgroud)\n\n但输出是一样的。我有一个同事和我有相同的项目,有相同的 Eclipse 客户端和配置,她的 Maven 测试打印重音没有任何问题。
\n\n还有其他想法吗?
\n\n多谢!
\n尝试使用以下命令运行您的构建:
mvn -DargLine=-Dfile.encoding=UTF-8 clean insall
Run Code Online (Sandbox Code Playgroud)
如果有帮助,您可以在项目中配置surefire:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<argLine>-Dfile.encoding=${project.build.sourceEncoding}</argLine>
</configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)
由于使用默认的系统编码,可能会出现问题System.out
,您可以通过设置file.encoding
java 属性来更改此编码。