编码的不可映射字符

时间:2015-09-02 05:59:09

标签: java encoding ant utf-8 cp1252

我正在尝试使用ANT构建我的java项目。

运行ant命令时出现以下错误:

error: unmappable character for encoding Cp1252

我还在此处改编了与此相同查询相关的先前帖子,并建议将“encoding”属性添加到javac属性为

<javac .....  encoding="UTF-8"> .... </javac> 

反过来又给我以下错误: -

error: unmappable character for encoding UTF-8

我无法对我的代码进行任何更改,所以我希望是否有任何其他解决方案。

2 个答案:

答案 0 :(得分:0)

使用像Notepad ++这样的文本编辑器,您可以找到您正在尝试编译的java代码的编码,并将编码传递给ant编译器。

这个主题可能很有用:Notepad++ can recognize encoding?

答案 1 :(得分:0)

您需要定义项目源的编码,因为可能包含CP1252和UTF-8文件,因此您需要修复它。错误消息应告诉您文件名和非法序列发生的位置。然后,您应该使用通常的编辑器打开文件(希望将编码存储在某处)并将其转码为目标编码。

在第一条错误消息的情况下,考虑到CP1252是固定长度的单字节编码,而this CP1252 table似乎只有几个字节不代表任何字符:

0x81
0x8D
0x90
0x9D

您可以使用十六进制编辑器打开文件并识别其中一个字节的第一个出现,以帮助您猜测字符集,如果它既不是CP1252也不是UTF8,而您绝对无法弄清楚它是什么是