保留中文名下载问题

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");
...全文
60 点赞 收藏 3
写回复
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();
}
回复
发动态
发帖子
Web 开发
创建于2007-09-28

7.9w+

社区成员

Java Web 开发
申请成为版主
社区公告
暂无公告