response.setHeader("Content-disposition", "inline; filename=" + new String("中文".getBytes(),"iso8859-1") + ".csv");

解决方案 »

  1.   

    一个工具类
    import java.io.PrintStream;public class toUTF8
    {    public toUTF8()
        {
        }    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 <= '\377')
                {
                    sb.append(c);
                } else
                {
                    byte b[];
                    try
                    {
                        b = Character.toString(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();
        }
    }编译后再将上面的代码改为:response.setHeader("Content-type", "application/csv");
    response.setHeader("Content-disposition", "inline; filename=toUTF8.toUtf8String(中文).csv");
      

  2.   

    用ChDw(米)的方法,不过好像写错了new String("中文".getBytes(),"iso8859_1")