文件下载,文件名乱码
功能:文件下载:
代码部分如下:
String strFileName = "测试.txt";
m_response.setHeader("Content-Disposition", "attachment; filename="+strFileName);
当访问这个servlet时:提示是否保存文件,
1、点击保存,文件名乱码;
2、点击打开,文件正常打开,不过文件的标题也是乱码;
如果这样:
String strFileName = toUtf8String("测试.txt");
m_response.setHeader("Content-Disposition", "attachment; filename="+strFileName);
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 = c.toString().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();
}
当访问这个servlet时:提示是否保存文件,
1、点击保存,文件名正常;
2、点击打开,文件正常打开,不过文件的标题是类似"%B%%%"的样子
请高手解答,怎么样才能使保存和打开文件名都不乱