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

来源:互联网 发布:linux服务器宕机 编辑:程序博客网 时间:2024/05/19 12:36
用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中进行
原创粉丝点击