在下载带中文文件名的文件时,可能出现文件名乱码。
产生原因:由于客户端响应的默认编码为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"));//设置应答头信息