要完成附件下载的功能,大家提点建议

大家提点建议,大体结构应该怎么样.就想邮件系统下载附件一样.
不过我的附件不是保存在数据库,而切以文件的形式保存在特定路径的文件夹下.
[73 byte] By [Samuel_831] at [2008-1-6]
# 1
主要功能完成了,碰到个新问题,文件名字是中文,下载回来显示是乱码.必须转换成UTF-8的编码格式.这样才能转换成UTF-8呢.目前用的类只能转换20个字符以下的文件名字.高手门来指导一下.
Samuel_831 at 2007-10-24 > top of Msdn China Tech,Java,J2SE,基础类...
# 2
取到文件名aaa后 利用String str = new String(aaa.getBytes("UTF-8"));
eewls at 2007-10-24 > top of Msdn China Tech,Java,J2SE,基础类...
# 3
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 {
Character temp = new Character(c);
b = temp.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();
}
Samuel_831 at 2007-10-24 > top of Msdn China Tech,Java,J2SE,基础类...
# 4
getBytes只是把aaa以指定字符集解码成字节序列.
可能要写成这样:String str = new String(aaa.getBytes("gb2312"),"UTF-8");
表示用gb2312解析成字节序列,在用UTF-8组合成String对象.我试试先.
Samuel_831 at 2007-10-24 > top of Msdn China Tech,Java,J2SE,基础类...
# 5
还是不行啊. 有高手帮下忙吗? 怎么才能正确的下载文件名是中文的文件啊.
Samuel_831 at 2007-10-24 > top of Msdn China Tech,Java,J2SE,基础类...