`

Ant编译utf-8非法字符:/65279 解决方法

    博客分类:
  • java
 
阅读更多
这是一个很郁闷的问题,碰到这问题百度又不能直接搜索“&#65279”,自然无法查找到结果。普通的浏览器也查不到为啥会出现这个空格。
出现此问题一般是在浏览器上浏览上某一段包含空格,且用IE浏览器无法查看,但是用FF浏览器filebug查看HTML时就会出现“&#65279”,删除这字符即正常显示,但刷新页面又重新出现。
 
使用ant编译java文件时报非法字符(不可见的)问题
 
最简单的方法:
一般来说错误信息会提示非法字符的位置,可以在eclipse里面切换java文件的编码方式,比如:ISO-8859-1,等编码,可以观察到指定位置的非法字符。删除非法字符即可编译通过。
对于较少文件适用
-------------------------------------------------
另外补充:
一般用UE或记事本编辑过的UTF-8的文件头会加入BOM标识,该标识由3个char组成。在UTF-8的标准里该BOM标识是可有可无 的,Sun 的javac 在编译带有BOM的UTF-8的格式的文件时会出现“非法字符:/65279”的错误,但是用Eclipse进行编译却没有问题,原因在于Eclipse 使用的是自己的JDT,而非javac,关于JDT的描述可以到eclipse的官网上去查看。
下载editplus,打开你的java源文件(可以打开多个文件),选择“文档”-“文件编码”-“批量更改文件编码…”选择所有你需要修改 的编码的java源文件,选择字符集“UTF-8″记得是UTF-8,而非“utf-8 bom”。点击批量保存按钮。再运行你的ant脚本,此时编译就不会报出“非法字符:/65279”这个错误了。


出现这种情况时,网上提供了两种解决方法: 
a) 利用UE、Editplus等文本编辑器重新保存文件为不带BOM的UTF-8格式 
b) 可使用eclipse自带的编译器进行编译 
<!--在ant中添加property,使用eclipse jdt compiler编译--> 
<property name="build.compiler" value="org.eclipse.jdt.core.JDTCompilerAdapter" /> 
相关jar包,在eclipse安装文件plugins目录下:org.eclipse.jdt.core_xxx.jar,xxx为版本号 
c)用DW关联Notepad++,必要的时间用notepad++里的“转化为utf-8无bom编码格式”
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics