【问题标题】:Unmappable character for encoding用于编码的不可映射字符
【发布时间】:2015-09-02 05:59:08
【问题描述】:

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

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

error: unmappable character for encoding Cp1252

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

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

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

error: unmappable character for encoding UTF-8

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

【问题讨论】:

  • 那么您的文件使用什么编码?你能举一个你期望表示的字节和相应字符的例子吗?

标签: java encoding ant utf-8 cp1252


【解决方案1】:

使用 Notepad++ 等文本编辑器,您可以找出您要编译的 java 代码的编码,并将编码传递给 ant 编译器。

这个帖子可能有用:Notepad++ can recognize encoding?

【讨论】:

    【解决方案2】:

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

    在第一个错误消息的情况下,认为 CP1252 是固定长度的单字节编码,从this CP1252 table 看来只有几个字节不代表任何字符:

    0x81
    0x8D
    0x90
    0x9D
    

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

    【讨论】:

      猜你喜欢
      • 2019-02-04
      • 2017-03-15
      • 1970-01-01
      • 2012-11-05
      • 2011-06-27
      • 2014-07-03
      • 2012-12-15
      • 2015-02-24
      • 2015-02-15
      相关资源
      最近更新 更多