在Jsp导出word时,文件名成了乱码。
示例:
<%@ page contentType="text/html;charset=utf-8" %>
<%@ page import="java.net.URLEncoder"%>
<%
response.setContentType("application/msword");
response.setHeader("Content-Disposition","attachment; filename=测试中文");
%>
<html>
<head></head>
<body>
这只是一个测试
</body>
</html>
一般我们看见page contentType="text/html;charset=GBK" ,自然就会认为用GBK对中文进行编码,
response.setHeader("Content-Disposition","attachment; filename="+URLEncoder.encode("测试中文", "GBK"));
由于windows系统是用uncode存储文件名和文件夹名的,所以这里应该用UTF-8进行编码才对。
response.setHeader("Content-Disposition","attachment; filename="+URLEncoder.encode("测试中文", "UTF-8"));
说明:
Linux环境下暂时未测试。