Ant: 警告:编码UTF8中存在无法映射的字符。

15

我看到许多类似我的问题,但它们并没有解决我的问题,因为我在使用 ant 而不是使用 eclipse。我运行了这段代码:ant clean dist,然后反复收到警告信息:warning: unmappable character for encoding UTF8

我发现 Java 命令中有一个 -encoding 选项,但那对我没有帮助,因为我正在使用 ant。

我在 Linux 上,正在尝试运行 Sentrick 的开发版本;我没有对任何内容进行修改,只是下载了它并按照他们所有的说明做了。然而却没有任何改变。我给开发者发了邮件,他们告诉我这是问题所在,但我怀疑实际上是由于最后出现的错误引起的问题:

BUILD FAILED
/home/daniel/sentricksrc/sentrick/build.xml:22: The following error occurred while executing this line:
/home/daniel/sentricksrc/sentrick/ant/common-targets.xml:83: Test de.denkselbst.sentrick.tokeniser.components.DetectedAbbreviationAnnotatorTest failed

我现在不确定该怎么办,因为我真的需要它能够工作。

3个回答

30

尝试更改您的源文件编码,并将默认Java文件编码设置为UTF-8。

对于Ant:

在您的ANT_OPTS环境变量中添加-Dfile.encoding=UTF8

将默认Java文件编码设置为UTF-8:

export JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF8

或者您可以使用参数-Dfile.encoding=UTF8启动Java。


1
我怀疑问题在于某些文件以其他编码方式进行编码,但工具链却将其视为UTF-8。 - McDowell
我找到了如何使用 pkill java 杀死 Java,但是如何重新启动它呢? - JOHANNES_NYÅTT
使用 export JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF8 解决了我的问题,但我仍然不明白为什么会发生这种情况。我已经使用 ant 有好几个月了,从未出现过问题。我使用 jEdit,只是在其中一个文件中更改了一行代码,整个程序就崩溃了! - Mugoma J. Okomba

2
问题不在于Eclipse或Ant,而是你的构建文件中有特殊字符,例如来自MS Word的智能引号或M破折号。无论如何,你的XML文件中存在不属于UTF-8字符集的字符。因此,你应该修复你的XML文件,删除这些无效字符并用类似但有效的UTF-8版本替换它们。查找特殊字符,如&#64 © — ®等,并将它们替换为对你有用的内容,例如(c)等等。
顺便说一句,坏字符在common-targets.xml文件的第83行。

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接