文件名为中文下载时为乱码,点击下载连接出现的是%16进制数%,请问这该怎么处理?
解决方案 »
- service层删除节点包含子节点问题
- jbpm4.4 如何获取HistoryTaskImpl对象
- 请问有人用过EAServer的嘛?简单问题啊
- SmartUpload控件带来的乱码问题,请大家帮忙
- 高分求教大家,tiles中路径问题有什么办法解决?
- ———————————急求JSP+SQL注入式漏洞修初方案,及源码。事成200分酬谢,绝不食言。————————————————
- 在Struts2.x中theme和template之间是什么关系?
- 两个奇怪的问题?
- 急,在线等!!!!!!!!!!!
- 请问eclipse-SDK-3.0M6-win32与eclipse-SDK-2.1.2-win32.zip有什么区别?
- 向excel表中--分块填充数据--遇到的问题
- 关于级联操作问题,在线等,高分相送,急急急!!
这里看看,文件头要编码,文件路径不要,
这里的文件名fileName要编码:public static String toUtf8String(String s) {
StringBuffer sb = new StringBuffer();
for (int i=0;i<s.length();i++) {
char c = s.charAt(i);
if (c >= 0 && c <= 255) {
sb.append(c);
} else {
byte[] b;
try {
b = Character.toString(c).getBytes("utf-8");
} catch (Exception ex) {
System.out.println(ex);
b = new byte[0];
}
for (int j = 0; j < b.length; j++) {
int k = b[j];
if (k < 0) k += 256;
sb.append("%" + Integer.toHexString(k).
toUpperCase());
}
}
}
return sb.toString();
}
中文参数最好加上URLEncoder:
<a href="download.jsp?url= <%=java.net.URLEncoder.encode("中文参数","utf-8")%>"> 获取的时候
String url = request.getParameter("url"); 另外写文件名的时候也容易乱码
response.setHeader("Content-disposition","attachment;filename="+filename);
如果乱码了可以试试对url做以下转码:
url = new String(url.getBytes("utf-8"),"ISO-8859-1");
url = new String(url.getBytes("GBK"),"ISO-8859-1");
具体用哪个就看你情况了。