destFileName是一个路径和文件名的字符串;FileInfo fi = new FileInfo(destFileName);
Response.Clear();
Response.ClearHeaders();
Response.Buffer = false;
Response.Charset="GB2312";    
Response.ContentEncoding=System.Text.Encoding.GetEncoding("GB2312");
Response.AppendHeader("Content-Disposition","attachment;filename=" +     System.Web.HttpUtility.UrlEncode(fi.Name,System.Text.Encoding.Default  ));

Response.AppendHeader("Content-Length",fi.Length.ToString());
Response.ContentType="application/octet-stream";
Response.WriteFile(destFileName);
Response.Flush();
Response.End();
以上代码有什么问题吗?为什么我总是出现乱码?System.Text.Encoding.UTF8 也试过了,不可以啊

解决方案 »

  1.   

    Response.WriteFile( System.Web.HttpUtility.UrlEncode( destFileName ) );
      

  2.   

    文件是能打开的,就是默认的文件名是乱码,真是没办法啊
    to gaochundu(高纯度) 
    你的那个我改了一下,结果出错了,不可以啊
    它说:The path is too long after being fully qualified. Make sure path is less than 260 characters. 
      

  3.   

    设置web.config中:
    <globalization
    requestEncoding="gb2312"
        responseEncoding="gb2312"
    />