【问题标题】:Comparing Java string passing encoding In Maven比较 Maven 中的 Java 字符串传递编码
【发布时间】:2013-08-13 02:43:03
【问题描述】:

如何将编码 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

【问题讨论】:

  • 我们很难在一行代码中解释这么多。你能把它分成多行吗?
  • 用于编译源代码的编码与您显示的 sn-p 无关。

标签: java maven encoding utf-8


【解决方案1】:

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

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

简而言之,你可以在maven中设置文件编码使用

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>

您可以使用像 StandardCharsets.UTF_8(在 Java 7 中)这样的字符集在代码中设置它

你可以在命令行中使用

 -Dfile.encoding=UTF-8

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

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

【讨论】:

  • 我相信你比我清楚,但这不应该是评论吗?
  • @SteveP。 +1 将其改写为更多的是答案而不是评论。
猜你喜欢
  • 2015-07-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-06
  • 1970-01-01
  • 2011-05-03
  • 2014-11-11
  • 2012-06-28
相关资源
最近更新 更多