我要这样子 发表于 2022-9-7 14:22

浏览器下载excel,文件名会显示乱码,有什么解决办法么

本帖最后由 我要这样子 于 2022-9-7 14:25 编辑

文件名称为中文,设置完请求头,从浏览器下载excel,文件名还是会显示乱码,有什么解决办法么

ResponseEntity<byte[]> response = null;
      name = new String(name.getBytes("UTF-8"),"iso8859-1");//防止中文乱码
      HttpHeaders headers=new HttpHeaders();//设置响应头
      headers.add("Content-Disposition", "attachment;filename="+name);
      HttpStatus statusCode = HttpStatus.OK;//设置响应吗

与影立黄昏 发表于 2022-9-7 14:35

不知道 我在zf网站下载也会出现这个情况

icysky0605 发表于 2022-9-7 14:36

文件名用urlencode一下

我要这样子 发表于 2022-9-7 14:41

icysky0605 发表于 2022-9-7 14:36
文件名用urlencode一下

headers.add("Content-Disposition", "attachment;filename="+ URLEncoder.encode(name,"UTF-8"));

我要这样子 发表于 2022-9-7 14:42

icysky0605 发表于 2022-9-7 14:36
文件名用urlencode一下

还是不行{:1_907:}

十字架传达者 发表于 2022-9-7 14:44

點擊右鍵在新的頁面打開,就會自動下載該文件,就不會出現亂碼

iamok 发表于 2022-9-7 16:29

linux和mac应该不会有乱码
windows下得用gbk编码

我要这样子 发表于 2022-9-7 16:30

iamok 发表于 2022-9-7 16:29
linux和mac应该不会有乱码
windows下得用gbk编码

name = new String(name.getBytes("UTF-8"),"iso8859-1") 把UTF-8改为gbk还是不行:'(weeqw

momosys 发表于 2022-9-7 16:51

你要看下获取到name时,是不是就已经乱码了,

unmask 发表于 2022-9-7 17:04

前端和后端最好都统一成utf-8,head部添加下面的声明。
或者前端和后端都统一成gbk也可以,就是要统一。
<meta charset="utf-8">
页: [1] 2
查看完整版本: 浏览器下载excel,文件名会显示乱码,有什么解决办法么