用Ant編譯時出現「編碼UTF-8的不可映射字符」

 

用Ant編譯時出現「編碼UTF8的不可映射字符」,這是由於對程序進行編譯的時候用的編碼與將該程序存儲到硬盤上時使用的編碼不一致形成的。java

若Ant構建文件寫着<?xml version="1.0" encoding="UTF-8"?>,那麼Ant用UTF-8編碼方式編譯源文件,若是源文件是用GBK編碼的,那麼就會出現「編碼UTF8 的不可映射字符」,解決辦法: 編輯器

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

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

以上語句告訴Ant用GBK編碼方式編譯源文件。spa

另外一種解決的辦法是把源文件改成用UTF-8編碼,具體操做就是:用記事本的另存爲...,而後選UTF-8,結果出現錯誤D:\Workspaces \AntTest\src\com\shengsiyuan\ant\custom\ApplicationException.java:1:非法字 符: \65279code

緣由就在於某些編輯器會往UTF-8文件中添加UTF-8標記(EditPlus稱其爲簽名),它會在文件開始的地方插入三個不可見的字符(0xEF 0xBB 0xBF,即BOM),該字符表示的意思是 Unicode 標記(BOM)。xml

所以要解決這個問題的關鍵就是把這個標記選項去掉。若是是在MyEclipse中新建文件,而後用UTF-8編碼,不會出現這個問題(不會加UTF-8標記BOM),因此若是想轉碼就在MyEclipse中進行。若Ant構建文件寫着<?xml version="1.0" encoding="GBK"?>,那麼Ant用GBK編碼方式編譯源文件,若是源文件是用UTF-8編碼的,那麼就會出現「編碼GBK 的不可映射字符」,解決方法:ip

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

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

以上語句告訴Ant用UTF-8編碼方式編譯源文件。另外一種解決的辦法是把源文件改成用GBK編碼,若是想轉碼就在MyEclipse中進行。

相關文章
相關標籤/搜索