Ant error: unmappable character for encoding Cp1252

Ant error: unmappable character for encoding Cp1252

当我通过 ant 构建我的项目时出现以下错误。

ResourceManagerJDBCRAHA.java:40: error: unmappable character for encoding Cp1252  

If a ConnectionManager of type “JDBCxE2|x80? is found, it instantiates the class

这部分代码实际上是我的java文件中的注释如下

/* If a ConnectionManager of type “JDBC” is found, it instantiates the class */

当我为 JDBC 添加单引号而不是双引号时(见下文)我没有收到此错误

/* If a ConnectionManager of type 'JDBC' is found, it instantiates the class */

以下是我的问题:-

  1. 为什么会这样?
  2. 我该怎么做才能解决这个问题,即保留双引号

我尝试添加如下所示的编码属性,它解决了问题,但在其他地方引起了问题

<javac .....  encoding="UTF-8"> .... </javac> 
error: unmappable character for encoding UTF-8

我宁愿坚持使用默认设置,即不添加编码属性。

如果您仔细查看该评论,您会发现那里实际上有两种不同的双引号字符:(“) 和 (”)。(我不完全相信这与您的来源相符代码 ... 因为我无法对其进行分解。)

简单的答案是只使用 ASCII 双引号字符。

更复杂的答案是确保您知道文件的真正字符编码是什么,然后在 build.xml 文件中设置该编码。


I would prefer to stick to the default i.e. without adding encoding attribute.

这是最佳答案,但它要求您只在源代码中使用默认字符集中的字符。因为你永远无法完全确定编译平台的默认字符集是什么......坚持使用 7 位 ASCII,以及这个双引号字符:(").