【问题标题】:ant: warning: unmappable character for encoding UTF8ant:警告:用于编码 UTF8 的不可映射字符
【发布时间】:2012-12-15 22:16:21
【问题描述】:

我见过很多像我这样的问题,但他们没有回答我的问题,因为我使用的是 ant 而我没有使用 eclipse。我运行这段代码:ant clean dist,它多次告诉我warning: unmappable character for encoding UTF8

我在 Java 命令中看到有一个 -encoding 选项,但这对我没有帮助,因为我使用的是 ant。

我在 Linux 上,我正在尝试运行 Sentrick 的开发人员版本;我没有对任何东西进行任何修改,我只是下载了它并关注了他们所有的instructions,它没有任何区别。我给开发人员发了电子邮件,他们告诉我这是这个问题,但我怀疑这实际上与最后这个错误有关:

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

我不确定我现在要做什么,因为我真的需要它来工作

【问题讨论】:

    标签: java linux ant


    【解决方案1】:

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

    对于蚂蚁:

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

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

    export JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF8
    

    或者你可以用参数-Dfile.encoding=UTF8启动java

    【讨论】:

    • 我怀疑问题是某些文件以其他编码方式编码,但工具链将其视为 UTF-8。
    • 我找到了如何用pkill java 杀死Java 但你如何重新启动它??
    • 使用export JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF8 为我解决了这个问题,但仍然不明白为什么会这样。几个月来我一直在使用ant 遇到问题。我使用 jEdit 并只是在其中一个文件中更改了一行,整个代码都崩溃了!
    【解决方案2】:

    问题不在于 eclipse 或 ant。问题是您有一个包含特殊字符的构建文件。就像 MS Word 中的智能引号或 m 破折号。无论如何,您的 XML 文件中有不属于 UTF-8 字符集的字符。因此,您应该修复您的 XML 以删除那些无效字符,并将它们替换为外观相似但有效的 UTF-8 版本。寻找特殊字符,如 @ © — ® 等,并将它们替换为 (c) 或任何对您有用的字符。

    顺便说一句,坏字符在第 83 行的 common-targets.xml 中

    【讨论】:

      【解决方案3】:

      将编码更改为 Cp 1252 对我的项目有效,但错误相同。我尝试多次更改 eclipse 属性,但它对我没有任何帮助。我在 pom.xml 文件中添加了编码属性,错误消失了。 http://ctrlaltsolve.blogspot.in/2015/11/encoding-properties-in-maven.html

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-10-02
        • 2011-02-23
        • 1970-01-01
        • 1970-01-01
        • 2013-08-17
        • 2012-07-06
        • 2014-06-17
        相关资源
        最近更新 更多