问题:下载的文件的名称如果是中文的话,下载的时候就变成了下划线,这是怎么回事?
我在网上查到解决乱码的问题是用如下类似的代码:
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");
}