问题描述:
开发时需要实现日志流水导出到excle表格的功能,这里实现方案很多,不进行赘述,
在实现后,发现火狐浏览器中会出现文件名中文乱码的问题。
![在这里插入图片描述](https://img.php1.cn/3cd4a/1eebe/cd5/bdd1ca32a69bc8b2.webp?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzQ2NDk2NA==,size_16,color_FFFFFF,t_70)
解决方案:
判断浏览器,当是火狐浏览器时严格按照标准进行处理:
// 判断浏览器String userAgent = v_Request.getHeader("User-Agent");if (userAgent.contains("Firefox")){ // 火狐浏览器需要严格按照标准处理fileNameStr = "=?UTF-8?B?" + (new String(Base64Utils.encodeToString(fileNameStr.getBytes("UTF-8")))) + "?=";v_Response.setContentType("application/x-msdownload");v_Response.setHeader("Content-Disposition", "attachment; filename="+ fileNameStr);}else {v_Response.setContentType("application/x-msdownload");v_Response.setHeader("Content-Disposition", "attachment; filename="+ URLEncoder.encode(fileNameStr, "UTF-8"));}
解决 !