您的位置:首页 > 其它

用ant编译时出现“编码 UTF8 的不可映射字符“,这是因为编译的时候编码跟文件存储的编码方式不一样造成的

2012-03-07 10:18 651 查看
用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

原因就在于某些编辑器会往utf8文件中添加utf8标记(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中进行
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐