使用easyExcel导出Excel时,文件名是文件@_1.xlsx,导出Excel后,文件名显示文件%40_1.xlsx,代码使用了fileName = URLEncoder.encode(fileName, "UTF-8");
进行了编码。
一直找不到原因,试了好多方法都没用,要么@正常显示了,但是中文乱码了。后面我看到了这个
而且,我在url编解码器中,@是能正常编解码的,所以我怀疑是浏览器的问题,浏览器没用将%40解码成@,明明中文是有解码的。(如果有大佬知道什么原因,麻烦评论区指导下)
于是,我直接对@做特殊处理,在fileName = URLEncoder.encode(fileName, "UTF-8");
编码后,将%40替换回@,fileName = fileName.replace("%40", "@");
(如果有更好的办法,麻烦大佬评论区指导下)
参考资料:
https://www.w3school.com.cn/tags/html_ref_urlencode.asp