比较Java字符串传递编码在Maven中

时间:2013-08-11 19:41:20

标签: java maven encoding utf-8

如何将编码UTF-8传递给maven中的Javac编译器?这是我的代码:

Assert.assertTrue(CollectionWidjet.getColPickerListWrapperList(i).getListSpan().getText().trim().equalsIgnoreCase(data.getCollections().get(i).getName().trim()));

这是在输入列表上运行的。基本上,当它是像印地语/中文这样的非Unicode字符时,它会失败。

在普通的javac编译器中,这是如何编译的:

javac -encoding UTF-8 MainClass.java

1 个答案:

答案 0 :(得分:3)

您是否尝试更改运行程序时要使用的源代码或默认编码。它不是在编译时设置的东西,然后在运行时变为默认值。

如果这产生了这样的差异,我不会使用默认编码,但总是在代码中指定它。

简而言之,您可以使用

在maven中设置文件编码
  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>

你可以使用像StandardCharsets.UTF_8这样的Charset在你的代码中设置它(在Java 7中)

您可以使用

在命令行上进行设置
 -Dfile.encoding=UTF-8

可以通过设置fork选项http://maven.apache.org/surefire/maven-surefire-plugin/examples/fork-options-and-parallel-execution.html

来使用maven设置

但最好不要让你的程序正常运行。