String filesName=""+exceltitle+"_"+sortName+"_"+ipaddress+"_"+eTime+"";//导出的Excel文件的文件名
response.setHeader("Content-disposition","attachment; filename="+URLEncoder.encode(filesName,"UTF-8")+".xls" )
实际上应该是这个名字:定制报表_数据库监测_全部_2006年01月01日-2006年05月07日可惜因为超长,它就自动变成 A表_数据库监测_全部_2006年01月01日-2006年05月07日.xls
这个文件名字
后台打印我发现filesName这个变量是正确的,而且如果这个名字不长就不会有这个问题,太长了就会自动把它截断,然后变成什么A表,E表之类的。这是怎么回事?

解决方案 »

  1.   

    环境:winxp 英文版本+weblogic 8.1
      

  2.   

    response.setHeader("Content-disposition","attachment; filename="+URLEncoder.encode(filesName,"GB2312")+".xls" )
    可能是你的编码的问题.
    英文XP默认的编码方式我就不知道了,不过中文的是GBK。
    你可以把你的JDK升级到1.5以上。
      

  3.   

    用GB2312或者GBK
    那就更乱码了,显示的一个中文都不对
    用UTF-8 还好,只是长了就会给你截断改成什么A,B之类的
    jdk不能升级,开发环境定了。
      

  4.   

    是不是winxp是英文的问题啊?
    唉,没办法啊,公司都给你装
    的英文机器,搞得我用netbeans打开有中文的也是乱码。