我有一个unziping xml签名的问题,它被改变了。解压XML文本内容损坏
客户端发送此XML:
<DatoAdicional>
<Codigo>03</Codigo>
<Valor>: REGULARIZACI�N DEL VALOR FACTURADO*: DEBE SER: 30.29*: VALOR FACTURADO: 30.00*</Valor>
</DatoAdicional>
但当unziping我们得到(它改变):
<DatoAdicional>
<Codigo>03</Codigo>
<Valor>: REGULARIZACI???N DEL VALOR FACTURADO*: DEBE SER: 30.29*: VALOR FACTURADO: 30.00*</Valor>
</DatoAdicional>
的问题是,当它解压的服务器码头内,因为当拉链被解压的带一个Java客户端,它已经成功地取消了。我的代码java是:
public static List<ZipContent> getXml(DataHandler file) throws IOException {
ZipInputStream zis = null;
List<ZipContent> zipContents = new ArrayList<>();
try {
zis = new ZipInputStream(file.getInputStream());
for (ZipEntry ze = zis.getNextEntry(); ze != null; ze = zis.getNextEntry()) {
if (!ze.isDirectory()) {
byte[] buffer = new byte[1 << 11];
ByteArrayOutputStream byteArrayOs = new ByteArrayOutputStream();
int len;
while ((len = zis.read(buffer)) > 0) {
byteArrayOs.write(buffer, 0, len);
}
ZipContent zc = new ZipContent();
zc.setFileName(ze.getName());
zc.setXml(new String(byteArrayOs.toByteArray()));
zipContents.add(zc);
}
zis.closeEntry();
}
zis.close();
return zipContents;
} catch (IOException e) {
throw e;
}
}
Hepl me please。
不知道如何/为什么码头适合这个问题。示例代码中没有任何内容使用servlet规范或jetty中的任何内容。 –
因为这个方法在从另一个客户端调用时解压得很好,那么我认为这可能是因为Jetty –