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();
次に、次のようにサーブレットから 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 でレンダリングする必要があることが示されていても、UTF-8 でレンダリングされません。
HTML ファイルを圧縮せずにそのまま提供すると、正常にレンダリングされます。
何か案は?
ありがとう!