1.只是做了中文处理
前台jsp页面代码如下:
buildpre.append("<td><a href=\"down.action?fname="+preDeatil.getPafilename().replaceAll(" ", " ")+"&fileName="+preDeatil.getPafileurlpath().replaceAll(" ", " ")+"\">"+preDeatil.getPafilepath().replaceAll(" ", " ")+"</a></td>\r\n");
后台java文件处理如下:
fileName = java.net.URLEncoder.encode(new String(fileName.getBytes("ISO-8859-1"), "UTF-8"), "UTF-8");
2.两者都做处理
前台jsp页面代码如下:
buildpre.append("<td><a onclick=\"downloadAttach(this)\" href=\"javascript:void(0)\" fname="+preDeatil.getPafilename().replaceAll(" ", " ")+" fileName="+preDeatil.getPafileurlpath().replaceAll(" ", " ")+"\">"+preDeatil.getPafilepath().replaceAll(" ", " ")+"</a></td>\r\n");
前如js代码如下:
//下载附件
function downloadAttach(paramHref)
{
var attachName = paramHref.fname;
var realAttachName = paramHref.fileName;
/*document.getElementById("attachName").value=attachName;
document.getElementById("realAttachName").value=realAttachName;
document.getElementById("attachLoad").submit();*/
//down.action?fname="+preDeatil.getPafilename().replaceAll(" ", " ")+"&fileName="+preDeatil.getPafileurlpath().replaceAll(" ", " ")+"\"
window.location.href = "down.action?fname="+encodeURIComponent(attachName)+"&fileName="+encodeURIComponent(realAttachName);
return false;
}
后台java文件处理如下:
fileName = fileName.replace('+', ' ');// 将编码成+号的空格替换回来
fileName = new String(fileName.getBytes("ISO-8859-1"), "UTF-8");
该博客主要讲述了在Java中处理中文和空格变为加号的问题。首先展示了只处理中文的JSP和Java代码,然后介绍了同时处理中文和空格的前后端完整解决方案,包括使用URLEncoder编码、JavaScript的encodeURIComponent函数以及Java中将加号替换为空格的方法。
5717

被折叠的 条评论
为什么被折叠?



