我在做文件下载时,使用 SmartUpload进行文件下载过程中文件名是中文,但当下载至浏览器时却是乱码,经试验发现使用以下方法能够解决该问题:
String temp="中文文件名.xls";
temp=new String(temp.getBytes("GBK"),"ISO8859-1");
su.downloadFile(path_p,"application/x-msdownload;charset=gb2312",temp);
即将文件名从GBK转换为ISO8859-1即可解决。具体原理本人不是很清楚,猜想是因为JDK采用ISO8859-1的标准编码,而IE在下载时是按照JAVA的标准编码来处理的,而IE本身的编码是UTF-8.IE会在下载过程中以ISO8859-1的形式转为UTF-8.