<%@ page 
   language="java"
   contentType="text/html; charset=big5"
   pageEncoding="BIG5"
  import="java.util.*, java.io.*, java.net.URLEncoder" 
 %>
 <%
   String aa=getServletConfig().getServletContext().getRealPath("upload");
   String filename=request.getParameter("filename"); 
   String src_fname = aa+"\\"+filename; 
   String dst_fname = URLEncoder.encode(filename); 
   request.setCharacterEncoding("big5");   
   response.setContentType("application/octet-stream; charset=iso-8859-1");
   response.setHeader("Content-disposition", "attachment; filename=\"" + dst_fname + "\"");  
   FileInputStream fis = null; 
   int byteRead; 
   try {
     fis = new FileInputStream(src_fname);
     while ((byteRead = fis.read()) != -1) {
       out.write(byteRead);
    }
     out.flush();
   } 
   catch (Exception e) {
     out.clearBuffer();
    response.setContentType("text/html; charset=big5");
     response.setHeader("Content-disposition", "inline");
     out.println("<HTML><BODY><P>");
     out.println(e.toString());
     
 out.println("</P></BODY></HTML>");    
  } 
   if (fis != null) {
     fis.close();
   }
   return; // 避免下面多按了 Enter 键而输出多余的换行字元.
 %>我下载的时候无法识别中文名字的文件,怎么改才能识别中文名字的文件?

解决方案 »

  1.   

    request.setCharacterEncoding("big5"); 放在第一行
      

  2.   

    kevinliuu(@。@) 
    识别出来的怎么是乱码阿?
      

  3.   

    kevinliuu(@。@) 
    把big5改为gb2312中文就变成了空格!
      

  4.   

    你的应用是在big5的编码方式下的吗? 客户端也是繁体中文?如果上传文件是简体中文环境下做的,可以试试request.setCharacterEncoding("GBK");能不能得到正确的中文名
      

  5.   

    request.setCharacterEncoding("gb2312");
    放到第一行试试.
      

  6.   

    kevinliuu(@。@) 
    得到的名字还只是个空格!
      

  7.   

    kevinliuu(@。@) 
    request.setCharacterEncoding("gb2312");放到第一行,可以识别简体中文名字了,但是显示出来的是个空格!