日期:2014-05-17  浏览次数:20752 次

下载提示框不显示中文名问题

如图:下载的提示框只显示英文下划线和空格而不显示中文,请问这该怎么弄啊???
下载代码如下:
try
{
SmartUpload mySmartUpload = new SmartUpload();//实例化对象
mySmartUpload.initialize(this.getServletConfig(),request,response);//初始化
request.setCharacterEncoding("UTF-8");
String filename=request.getParameter("filename");//获取数据            String temp4=new String(filename.getBytes("ISO-8859-1"),"gbk");
mySmartUpload.setContentDisposition(null);//将数据追加到MIME文件头的content-dispostion域
mySmartUpload.downloadFile("D:/Eclipse/workspace/load/upload/"+temp4);//存储文件

}catch(Exception e)
{
e.printStackTrace();
}

------解决方案--------------------
String temp4=new String(filename.getBytes("ISO-8859-1"),"gbk");
有兼容问题, 有时候不支持中文。
------解决方案--------------------
中文乱码吗?

     if (request.getHeader("User-Agent").toLowerCase().indexOf("firefox") > 0){
      fileName = new String(fileName.getBytes("UTF-8"), "ISO8859-1");
     }else if(request.getHeader("User-Agent").toUpperCase().indexOf("MSIE") > 0){
      fileName = URLEncoder.encode(fileName, "UTF-8");
     }

------解决方案--------------------
	if (request.getHeader("User-Agent").toUpperCase().indexOf("MSIE") > 0) {
downloadFileName = URLEncoder.encode(fileRealName, "UTF-8");
} else {
downloadFileName = new String(fileRealName.getBytes("UTF-8"), "ISO8859-1");
}

response.setHeader("Content-disposition", "attachment; filename=" + downloadFileName);

------解决方案--------------------
改成这样呢
 String temp4=new String(filename.getBytes("GBK"),"ISO-8859-1");