场景
使用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
文章讲述了在使用easyExcel导出Excel时遇到的问题,文件名被编码为%40而不是预期的@,作者怀疑是浏览器未正确解码%40。解决方案是在编码后手动替换%40为@。
22万+

被折叠的 条评论
为什么被折叠?



