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

时间:2014-04-30 23:36:21

标签: java encoding ant utf-8 cp1252

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

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

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

5 个答案:

答案 0 :(得分:12)

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

等编码

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

答案 1 :(得分:5)

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

答案 2 :(得分:4)

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

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

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

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

答案 3 :(得分:1)

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

Change encoding

答案 4 :(得分:0)

窗口>首选项>常规>内容类型,将UTF-8设置为所有内容类型的默认编码。

窗口>首选项>常规>工作区,将“文本文件编码”设置为“其他:UTF-8”。