即使配置了,Maven 安装也不会以 UTF-8 进行编码

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

Sla*_*ski 7

尝试使用以下命令运行您的构建:

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.encodingjava 属性来更改此编码。