response.setHeader("Content-Disposition","attachment;filename="+java.net.URLEncoder.encode(MimeUtility.decodeText(attachname)));我不清楚你的String str=MimeUtility.decodeText(attachname))这个字符串是什么编码,如果是普通字符串的话,一般来说可以有两个方法:
1.URLEncoder.encode(str,"utf-8");按utf-8编码输出
2.
String temp=str;
str= new String(tempgetBytes(), "8859_1");
当然这和你的系统编码有关系,一般建议使用utf-8编码。
当然,也不止上面两个方法,比如可以转换成gbk等,只要你熟悉你的字符串和系统的编码方式,如何转码就很容易了。当然这两种方法都有些局限性,但一般情况下是够用了,对于跨操作系统,跨语言的环境,略微有些问题,这和你操作系统的字符库有关系。如果还搞不定和我联系。