【问题标题】:Java, Ant error: unmappable character for encoding Cp1252Java,Ant 错误:用于编码 Cp1252 的不可映射字符
【发布时间】:2014-06-17 11:15:19
【问题描述】:

我在我的项目中使用 Java、Eclipse 和 Ant。我有一些 Java 代码需要编辑并在其中添加一些 UTF-8 字符。以前我的 build.xml 有: 它工作得很好。现在,当我尝试运行时添加那些 UTF-8 字符后,它会抛出“错误:用于编码 Cp1252 的不可映射字符”

谁能告诉我解决方法是什么?我尝试在 xml 中将编码更改为 UTF-8 和 Cp1252,但没有运气。

我正在使用 JRE7、Eclipse Kepler 和 Ant 4.11。

【问题讨论】:

  • 问题要同时解决四个地方:stackoverflow.com/a/34225997/715269
  • 我遇到了同样的问题。以下解决方案均无效。我创建了一个具有正确编码的新文件,然后复制并粘贴了类 (.java) 的内容。它对我有用。在此之前,未知字符在我运行 ant 时不断重新插入,当我明确删除它并保存文件时发生事件。很奇怪吧?

标签: java encoding ant utf-8 cp1252


【解决方案1】:

这可能很棘手,仅更改“广告”编码并不能弥补文件中存在无法使用 UTF-8 解释来理解的字节这一事实。在 Ant 中,您需要更新 javac 任务以添加编码,例如 <javac ... encoding="utf-8">

确保 Eclipse 中的文件编码也是 UTF-8,因为某些 cp1252 字符也不直接映射到 UTF-8。您可能希望使用单一编码来维护整个项目。否则编译器只会看到不同的编码。

【讨论】:

  • 如何:确保 Eclipse 中的文件编码也是 UTF-8 ?
【解决方案2】:

您可以尝试将名为 ANT_OPTS(或 JAVA_TOOL_OPTIONS)的环境变量设置为 -Dfile.encoding=UTF8

【讨论】:

    【解决方案3】:

    在我的一个项目中遇到了类似的问题。我的一些文件包含 UTF-8 字符,并且由于 Eclipse 默认编码 - cp1252,构建失败并出现此错误。

    要解决此问题,请按照以下步骤操作 -

    1. 将 Eclipse 项目级别的编码更改为 UTF-8(项目属性 -> “文本文件编码” -> 选择“其他”选项 -> 从下拉列表中选择“UTF-8”)
    2. 在 ant 构建脚本中为 javac 任务添加编码属性,值为“UTF-8”

    根据您的代码/文件中使用的特殊字符设置编码类型。

    【讨论】:

      【解决方案4】:

      在 Eclipse 中转到 RUN/DEBUG 配置的常用选项卡,将编码更改为 UTF-8。

      【讨论】:

        【解决方案5】:

        Window > Preferences > General > Content Types,将 UTF-8 设置为所有内容类型的默认编码。

        Window > Preferences > General > Workspace,将“Text file encoding”设置为“Other : UTF-8”。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-02-04
          • 2012-12-15
          • 2017-11-04
          • 2012-11-05
          • 2011-06-27
          • 2015-02-24
          相关资源
          最近更新 更多