【发布时间】:2014-01-27 14:22:30
【问题描述】:
我正在从 FTP 服务器下载 XML。我必须为我的 SAX 解析器准备它。为此,我需要删除 BOM 字节并将其编码为 UTF-8。但不知何故,它不适用于每个文件。
这是我的两个函数的代码:
public static void copy(File src, File dest){
try {
byte[] data = Files.readAllBytes(src.toPath());
writeAsUTF8(dest, skipBom(data));
} catch (IOException e) {
e.printStackTrace();
}
}
private static void writeAsUTF8(File out, byte[] data){
try {
FileOutputStream outStream = new FileOutputStream(out);
OutputStreamWriter outUTF = new OutputStreamWriter(outStream,"UTF8");
outUTF.write(new String(data, "UTF8"));
//outUTF.write(new String(data));
outUTF.flush();
outStream.close();
outUTF.close();
}
catch(Exception ex){
ex.printStackTrace();
}
}
private static byte[] skipBom(byte[] data){
int skipBytes = getBomSize(data);
byte[] tmp = new byte[data.length - skipBytes];
for(int x = 0; x < tmp.length; x++){
tmp[x] = data[x + skipBytes];
}
return tmp;
}
任何想法我做错了什么?
【问题讨论】:
-
你有没有尝试过this question的任何想法?