用Ant编译时出现“编码UTF-8的不可映射字符”

 

用Ant编译时出现“编码UTF8的不可映射字符”,这是因为对程序进行编译的时候用的编码与将该程序存储到硬盘上时使用的编码不一致造成的。

若Ant构建文件写着<?xml version="1.0" encoding="UTF-8"?>,那么Ant用UTF-8编码方式编译源文件,如果源文件是用GBK编码的,那么就会出现“编码UTF8 的不可映射字符”,解决办法: 

<javac srcdir="src" destdir="build/classes"> 

<compilerarg line="-encoding GBK"/> </javac>

以上语句告诉Ant用GBK编码方式编译源文件。

另一种解决的办法是把源文件改为用UTF-8编码,具体操作就是:用记事本的另存为...,然后选UTF-8,结果出现错误D:\Workspaces \AntTest\src\com\shengsiyuan\ant\custom\ApplicationException.java:1:非法字 符: \65279

原因就在于某些编辑器会往UTF-8文件中添加UTF-8标记(EditPlus称其为签名),它会在文件开始的地方插入三个不可见的字符(0xEF 0xBB 0xBF,即BOM),该字符表示的意思是 Unicode 标记(BOM)。

因此要解决这个问题的关键就是把这个标记选项去掉。如果是在MyEclipse中新建文件,然后用UTF-8编码,不会出现这个问题(不会加UTF-8标记BOM),所以如果想转码就在MyEclipse中进行。若Ant构建文件写着<?xml version="1.0" encoding="GBK"?>,那么Ant用GBK编码方式编译源文件,如果源文件是用UTF-8编码的,那么就会出现“编码GBK 的不可映射字符”,解决方法:

<javac srcdir="src" destdir="build/classes">

<compilerarg line="-encoding UTF-8"/> </javac>

以上语句告诉Ant用UTF-8编码方式编译源文件。另一种解决的办法是把源文件改为用GBK编码,如果想转码就在MyEclipse中进行。

 

 

转载于:https://my.oschina.net/wangsifangyuan/blog/659710

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值