本帖最后由 cyber_telecaster 于 2013-02-24 18:03:29 编辑

解决方案 »

  1.   

    补充:上面代码的out是ServletOutputStream out=response.getOutputStream();
      

  2.   

    全部采用字节流方式操作,文件内容应该是不会出现乱码问题的,如果文件内容有乱码的话,先确定服务器上的待下载的文件没有问题。文件名这个设置一下response的字符集应该可以解决。
      

  3.   

    response.setContentType("application/msword,charset=gb2312");这样吗? 还是不行,文件内容没有乱码,只是下载提示的文件名有乱码。。
      

  4.   

    http://bbs.csdn.net/topics/390372335
    你看一下,一共有可能有四个原因
      

  5.   

    改成response.setHeader("Content-disposition","attachment; filename="+new String(filename.getBytes("gb2312"),"iso8859-1"));试试
      

  6.   

    文件乱码应该是你上传的时候就已经破坏了,你看看服务器上的word文档是否是正常的。文件名乱码,应该将文件名重新编码就能解决:new String(filename.getBytes("gb2312"),"iso8859-1")
      

  7.   

    同意:new String(filename.getBytes("gb2312"),"iso8859-1");但要注意原来是采用'GBK'呢还是'UTF-8' 等,所以需要根据原来编码时来对应采用gb2312还是其它的参数
      

  8.   

    改成response.setHeader("Content-disposition","attachment; filename="+new String(filename.getBytes("gb2312"),"iso8859-1"));试试 by bluemoby