Java-javaweb word文档下载后文件名出现乱码

Java-javaweb word文档下载后文件名出现乱码

灵芸 发布于 2017-07-12 字数 392 浏览 1109 回复 2

javaweb word文档下载,下载完成文件名出现“%E5%B9%B49%E6%9C%88%E7%AC%AC4%E5%91%A8%E5%91%A8”的乱码,求求高人指导

IE,谷歌,火狐测试都正常,且下载的内容都正常,只有有文件名异常
response.setHeader("Content-disposition",
"attachment; filename="+ java.net.URLEncoder.encode(title+".docx", "UTF-8"));
变量title的值为“会议纪要”

如果你对这篇文章有疑问,欢迎到本站 社区 发帖提问或使用手Q扫描下方二维码加群参与讨论,获取更多帮助。

扫码加入群聊

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

灵芸 2017-10-28 2 楼

浏览器是用iso8859-1对下载文件名编码的,你先要把下载的文件名编码改成和浏览器一致,response.setHeader("Content-Disposition", "attachment; filename=" + new String((title+".docx").getBytes("gb2312"),"iso8859-1"));

甜柠檬 2017-08-07 1 楼

输出的文件名要进行URL encode

给个例子

String mytext = java.net.URLEncoder.encode("中国","utf-8");
String mytext2 = java.net.URLDecoder.decode(mytext,"utf-8");

两个字符串的值分别是:
mytext: %E4%B8%AD%E5%9B%BD

mytex2: 中国