Ant編譯utf-8非法字符:/65279 解決方法


這是一個很郁悶的問題,碰到這問題百度又不能直接搜索“&#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編碼格式”


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM