Java,Ant错误:编码Cp1252无法映射的字符

22

我正在使用Java、Eclipse和Ant进行项目开发。 我需要编辑一些Java代码,并在其中添加一些UTF-8字符。 以前我的build.xml文件是这样的:

<property name="java.encoding" value="Cp1252"/>

这个配置很好用。但是,现在我添加UTF-8字符后,当我尝试运行时,它会抛出“错误:无法转换为 Cp1252 编码的字符”。

请问有什么办法可以解决吗?我已经尝试将xml中的编码更改为UTF-8和Cp1252,但并没有成功。

我的JRE7、Eclipse Kepler和Ant 4.11。


1
问题应该同时在四个地方解决:https://dev59.com/tW855IYBdhLWcg3wq2TL#34225997 - Gangnus
我曾经遇到过同样的问题。下面的解决方案都没有起作用。我创建了一个具有正确编码的新文件,然后复制并粘贴了类(.java)的内容。这对我有用。在此之前,即使我明确删除并保存文件,未知字符仍会在运行ant时重新插入。很奇怪,对吧? - 1vand1ng0
5个回答

21

这可能有些棘手,仅仅更改“宣传”的编码方式并不能弥补文件中存在的无法用UTF-8解释的字节。在Ant中,您需要更新javac任务以添加一个类似于<javac ... encoding="utf-8">的编码。

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


如何:确保Eclipse中的文件编码也是UTF-8? - The Guest

11

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


4
在我的一个项目中也遇到了类似的问题。我的一些文件有UTF-8字符,由于eclipse默认编码为cp1252,因此构建失败并显示此错误。
为解决此问题,请按照以下步骤操作:
  1. 在eclipse项目级别上更改编码为UTF-8(项目属性->“文本文件编码”->选择“其他”选项->从下拉列表中选择“UTF-8”)
  2. 在ant构建脚本中为javac任务添加编码属性,值为“UTF-8”
根据代码/文件中使用的特殊字符设置编码类型。

1

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

Change encoding


0

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

在“Window > Preferences > General > Workspace”中,将“文本文件编码”设置为“其他:UTF-8”。


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