在下载带中文文件名的文件时,可能出现文件名乱码。
产生原因:由于客户端响应的默认编码为ISO-8859-1,所以如果不对文件名进行转码(目前的文件名采用的是GBK编码,而要求的是ISO-8859-1编码),将产生乱码。
解决办法:
在指定文件名时,对其进行转码,即将GBK编码的文件名转换为ISO-8859-1编码。具体如下:
产生原因:由于客户端响应的默认编码为ISO-8859-1,所以如果不对文件名进行转码(目前的文件名采用的是GBK编码,而要求的是ISO-8859-1编码),将产生乱码。
解决办法:
在指定文件名时,对其进行转码,即将GBK编码的文件名转换为ISO-8859-1编码。具体如下:
response.addHeader("Content-Disposition","attachment;filename=" + new String(file.getName().getBytes("GBK"),"ISO-8859-1"));//设置应答头信息
本文介绍了解决下载中文文件名时出现乱码的问题。主要原因是客户端默认使用ISO-8859-1编码,而文件名采用的是GBK编码。解决方法是在设置文件名时将其从GBK编码转换为ISO-8859-1编码。
2931

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



