netbeans和shell窗口的行为不同



我用Netbeans 8.02 (JDK8;Java版本1.8.0_45)。它读取XML文件(使用UTF-8编码),查找并替换字符"&",解析文件并对其签名。

从Netbeans执行这个程序是正确的。从windows XP shell执行相同的程序,我遇到关于要签名的文件的编码错误。在windows 7 shell中执行同样的程序,一切都很好。

有人知道是什么导致了这种不同的行为吗?

为了尽量减少这种不同行为之间的距离,从而避免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"。

相关内容

  • 没有找到相关文章

最新更新