使用 java,我采用一个代表一些 HTML 的字符串:
String webPage = "<!DOCTYPE html><html xmlns:csi='http://www.massimocorner.com/libraries/csi/' lang='de'>" +
"<head><meta http-equiv='Content-Type' content='text/html;charset=UTF-8'/> ..... </html>
并将其放入一个 zip 文件中,如下所示:
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
ZipStreamOutput output = new ZipStreamOutput( byteArrayOutputStream );
OutputStream os = output.addStream(Integer.toString(i) +".html");
os.write(webPage.getBytes());
os.flush();
output.finish();
byte[] data = byteArrayOutputStream.toByteArray();
然后我从我的 serverlet 提供 ZIP 文件,如下所示:
response.setCharacterEncoding("UTF-8");
response.setContentType( "application/zip");
response.setContentLength( data.length );
response.setHeader( "Content-Disposition", "inline; filename=" + "filename.zip");
response.getOutputStream().write( data );
当我提取 ZIP 文件并在浏览器中打开 HTML 文件时,即使 HTML 表明它应该以 UTF-8 呈现,它也不会呈现。
如果我只是提供 HTML 文件而不压缩它,它会正常呈现。
有任何想法吗?
谢谢!