由于window系统跟linux系统的默认编码方式不一样,所以在window系统下,下载没问题的程序移植到linux系统下面测试,中文名的文件就会出现乱码!所以要进行转码才能解决。
加入以上代码之后即可在linux系统下面下载正常。
补充:linux下面的火狐是会进行自动转码的所以得先转成iso-8859-1然后火狐自动下载转换汉字,前提filename必须为汉字,不为汉子的话先进行转换
response.setContentType(ContentType1 + "; charset=" + FileUploadController.this.contentTypeCharset);
response.setHeader("Content-disposition", mode + ";filename=\""+new String(filename.getBytes("UTF-8"), "iso-8859-1")+ "\"");
加入以上代码之后即可在linux系统下面下载正常。
补充:linux下面的火狐是会进行自动转码的所以得先转成iso-8859-1然后火狐自动下载转换汉字,前提filename必须为汉字,不为汉子的话先进行转换
filename = new String(filename.getBytes("iso-8859-1"),"GBK");