当前位置: 代码迷 >> J2EE >> java下载乱码有关问题
  详细解决方案

java下载乱码有关问题

热度:58   发布时间:2016-04-19 22:02:52.0
java下载乱码问题
问题:下载的文件的名称如果是中文的话,下载的时候就变成了下划线,这是怎么回事?
我在网上查到解决乱码的问题是用如下类似的代码:

String filepath = file.getFilePath()+"需要下载的文件路径
    String filename = file.getFileName()+"."+file.getFileTypeInfo().getFileTypeSuffix();//需要下载的文件名字
    //解决中文文件名乱码问题
    if(request.getHeader("User-Agent").toLowerCase().indexOf("firefox") > 0)
     filename = new String(filename.getBytes("UTF-8"), "ISO8859-1");//firefox浏览器
    else if(request.getHeader("User-Agent").toUpperCase().indexOf("MSIE") > 0)
     filename = URLEncoder.encode(filename, "UTF-8");//IE浏览器

但是没有起任何作用?
像上述的问题应该怎么解决?
------解决方案--------------------
  fileName= new String(fileName.getBytes("GBK"),"8859_1");
------解决方案--------------------
页面编码是什么啊?
------解决方案--------------------


String header = ServletActionContext.getRequest().getHeader(
"User-Agent");
// 如果是火狐
if (header.contains("Firefox")) {
filedisplay = new String(filedisplay.getBytes(), "iso8859-1");
} else {
// IE要用URL编码格式
filedisplay = URLEncoder.encode(filedisplay, "UTF-8");
}