Java,Ant错误:编码Cp1252的不可映射字符

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

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

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

这可能是棘手的,简单地改变“广告”编码并不能弥补文件中存在使用UTF-8解释无法理解的字节这一事实。 在Ant中,您需要更新javac任务以添加编码,例如

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

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

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

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

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

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

转到eclipse更改编码中的RUN / DEBUG配置的公共选项卡为UTF-8。

改变编码