如题!
我在做B/S文件下载,但弹出下载文件对话框时,对话框中的汉字文件名变成了乱码,英文和数字没问题,如何解决?

解决方案 »

  1.   

    FileInfo MyFileInfo = new FileInfo(spath+downfile); 
    long FileSize = MyFileInfo.Length;
    Page.Response.Buffer=true; 
    Page.Response.ContentType="APPLICATION/OCTET-STREAM";
    Page.Response.AddHeader("Content-Disposition","attachment;filename="+Server.UrlEncode(downfile)); 
    Response.WriteFile(spath+downfile, 0, FileSize);
    Page.Response.Flush();
    Page.Response.End(); 读出来你要的文件,然后写给客户端就成了,用urlencode编码以后,客户端文件名就会正确,不会汉字乱码
      

  2.   

    System.Text.Encoding.GetEncoding("GB2312");
    只是类似的或utf8这类的
      

  3.   

    Response.ContentType = _BlobType
    Response.Buffer = True
    Response.Clear()
    Response.ClearHeaders()
    Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312")
    Response.AppendHeader(
        "Content-Disposition",
        "attachment;filename=" & HttpUtility.UrlEncode(_FileName, System.Text.Encoding.UTF8))
    Response.Flush()
    Response.BinaryWrite(_BlobByte)
    Response.End()不过文件名太长还是不能显示!
      

  4.   

    我也曾遇到过这样的问题,加了UrlEncode还是乱码。
    原来还要加上Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312")。