1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > 解决苹果(mac)浏览器safari导出excel中文名称乱码问题

解决苹果(mac)浏览器safari导出excel中文名称乱码问题

时间:2022-03-30 17:02:41

相关推荐

解决苹果(mac)浏览器safari导出excel中文名称乱码问题

修改前

我们开发代码里有两种写法,safari导出excel中文乱码,英文是没问题的,但是但是导出中文的会乱码。

方式一: response.setHeader("content-Type", "application/vnd.ms-excel");response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8") + ".xls");方式二: String filename = fileName + ".xls";response.setContentType("application/ms-excel;charset=UTF-8");response.setHeader("Content-Disposition", "attachment;filename=".concat(String.valueOf(URLEncoder.encode(filename, "UTF-8"))));

下面为修改后的,这样即可解决中文乱码问题。

修改后

本地测可以发到测试环境不可以byte[] bytes = fileName.getBytes("UTF-8"); // name.getBytes("UTF-8")处理safari的乱码问题fileName = new String(bytes, "ISO-8859-1"); // 各浏览器基本都支持ISO编码response.setHeader("Content-disposition", String.format("attachment; filename=\"%s\"", fileName));response.setHeader("Content-Disposition", "attachment;filename="+fileName+ ".xls");

所以又用了下面这种方法可以,两种都可尝试下String originalFileName = URLEncoder.encode(fileName, "utf-8");response.reset();response.setHeader("content-disposition", "attachment;filename*=utf-8''" + originalFileName+ ".xlsx" );response.setContentType("application/octet-stream; charset=utf-8");

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。