我有一个将文件发送到浏览器的servlet。
我在servlet中发送这个头文件。
if (request.isSecure()) {
response.addHeader("Pragma", "no-cache");
response.addHeader("Expires", "-1");
response.addHeader("Cache-Control", "no-cache");
} else {
response.addHeader("Cache-Control", "private");
response.addHeader("Pragma", "public");
}
if (isIE) {
response.addHeader("Content-Disposition", "attachment; filename=\"" + encName + "\"" );
response.addHeader("Connection", "close");
response.setContentType("application/force-download; name=\"" + encName + "\"" );
} else {
response.addHeader("Content-Disposition", "attachment; filename=\"" + encName + "\"" );
response.setContentType("application/octet-stream; name=\"" + encName + "\"" );
if (contentLen > 0) {
response.setContentLength(contentLen);
}
}然后我将文件发送到浏览器,但我在文件编码方面遇到了问题。该文件的内容是UTF-8,但我不知道如何发送标头。
有谁知道我该怎么做吗?
发布于 2010-12-28 00:17:53
不需要告诉浏览器该文件是UTF-8编码的。通过将内容类型设置为application/octet-stream,您可以指定文件不能被解释,并且可能根本不是纯文本。
如果您绝对希望声明一种编码,请停止将该文件声明为application/octet-stream,而是将其声明为"text/plain;charset=utf-8“。
发布于 2010-12-28 00:19:57
response.setCharacterEncoding("utf-8");
https://stackoverflow.com/questions/4540003
复制相似问题