关于response.addHeader文件名称中文乱码

关于response.addHeader(“Content-Disposition”, “attachment;filename=” + fileName + “.xls”) Excel文件名称中文乱码

// 文件名称
	String fileName =params.get("fileName");
	response.setCharacterEncoding("UTF-8");
	response.addHeader("Content-Disposition", "attachment;filename=" + fileName + ".xls");
	response.setContentType("application/x-msdownload");

文件名称乱码

    第一种修改方式:

文件名发送给服务器的时候把中文转成ISO8859-1,此时非中文的形式。new String(fileName.getBytes(“UTF-8”),“ISO8859-1”),其中getBytes()方法默认UTF-8

// 文件名称
	String fileName =params.get("fileName");
	response.setCharacterEncoding("UTF-8");
	response.addHeader("Content-Disposition", "attachment;filename=" + new String(fileName.getBytes("UTF-8"),"ISO8859-1") + ".xls");
	response.setContentType("application/x-msdownload");

文件名正常显示

    第二种修改方式:

文件名发送给服务器的时候用URLEncoder编码,此时非中文的形式。URLEncoder.encode(fileName,“UTF-8”)

// 文件名称
	String fileName =params.get("fileName");
	response.setCharacterEncoding("UTF-8");
	response.addHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(fileName,"UTF-8") + ".xls");
	response.setContentType("application/x-msdownload");

文件名正常显示 参考相关资料链接:https://blog..net/fanyuna/article/details/5568089

经验分享 程序员 微信小程序 职场和发展