保留中文名下载问题

ABIAY 2004-10-09 03:51:09
不用IE的下载方式,用自己写的header来做下载时遇到的问题,当文件名是中文时,默认下载的文件名为乱码,在JAVA中怎么解决?
原代码:

CONTENT_TYPE = "application/octet-stream";
response.reset();
response.setContentType(CONTENT_TYPE);
response.setHeader("Content-Disposition","attachment; filename=\"" + filename + "\"");
response.setHeader("Accept-ranges", "bytes");
...全文
75 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
ABIAY 2004-10-09
  • 打赏
  • 举报
回复
试了一下,好像不可以
不知道那个rs是不是ResourceBundle类型的
liubin_hit 2004-10-09
  • 打赏
  • 举报
回复
没必要这么长
new String(rs.getString("filename").getBytes("iso8859_1"),"gb2312")
ABIAY 2004-10-09
  • 打赏
  • 举报
回复
自己解决了,下面是将中文字符串转为UTF-8格式的代码,大家看看吧


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 = String.valuesof(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();
}

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧