2015-05-27 11 views
1

我使用Netbeans 8.02(JDK8; Java版本1.8.0_45)在Java中編寫了一個小程序。 它讀取XML文件(採用UTF-8編碼),查找並替換字符「&」,解析文件並對其簽名。netbeans和shell窗口之間的不同行爲

從Netbeans執行這個程序沒關係。 從Windows XP shell執行相同的程序,我遇到了有關要簽名文件編碼的錯誤。 從Windows 7外殼執行相同的程序,每件事情都很好。

有人知道是什麼導致了這種不同的行爲?

回答

0

,以儘量減少距離此不同的行爲之間,從而避免BOM和字符集的錯誤,我解決了這種方式:

f = new File(PatInputFile); 
String sif = readfile(PatInputFile,StandardCharsets.UTF_8); 
byte[] contentInBytes = sif.replaceAll("&", "&").getBytes("UTF-8"); 
FileOutputStream fop =new FileOutputStream(f); 
fop.write(contentInBytes); 
fop.flush(); 
fop.close(); 

其中

private static String readfile(String path, Charset encoding) throws IOException 
{ 
    byte[] encoded = Files.readAllBytes(Paths.get(path)); 
    return new String(encoded, encoding); 
} 

等解析和簽署文件「f」。

相關問題