用 System.Text.Encoding.Default 确省使用系统的编码 你的2000 Server是中文就可以吧
试一下把web.config的配置去掉如何?

解决方案 »

  1.   

    就是将<globalization  requestEncoding="UTF-8"
                          responseEncoding="UTF-8" />
    中的UTF-8改为GB2312
      

  2.   

    试试将:
    System.Web.HttpUtility.UrlEncode(ExportFileName, System.Text.Encoding.UTF8)
    改为:System.Web.HttpUtility.UrlEncode(ExportFileName, System.Text.Encoding.GetEncoding("gb2312"))
      

  3.   

    TO Jouzen():我的服务器和客户端用的都是Win2000 中文版。我的web.config配置必须是
    <globalization  requestEncoding="GB2312" responseEncoding="GB2312" />
    而不能改成UTF-8,否则我的程序在取中文参数时会出错。你说的web.config配置去掉是什么意思?To  freemanor(逍遥客) :我已经是这种环境,你可能没看清楚。
    TO webdiyer(陕北吴旗娃): 你这种情况就等同于我的第2种情况,即“下载”对话框显示为乱码,“另存为”对话框显示正常。我现在需要两者一致。
      

  4.   

    我刚测试一了一下,没有配置Web.Config的话,上传中文名的doc到数据库,得到的文件名是乱码,选择保存后,改名成正常的字符,用word打开后内容正常,配置Web.Config后(GB2312),文件名正常,选择下载,文件名和内容都正常,无论哪种情况内容都没有乱码
    我得代码:
    Response.AppendHeader("Content-Disposition", "attachment;;filename=" + HttpUtility.UrlEncode(fileName));
      

  5.   

    System.Web.HttpUtility.UrlEncode(ExportFileName, System.Text.Encoding.GetEncoding("gb2312"))
      

  6.   

    我试了下,不管web.config怎么用utf8还是gb2312,下面的都没问题,你读文件名的代码有问题,贴出来看看
     Response.AppendHeader("Content-Disposition", "attachment;filename=" + System.Web.HttpUtility.UrlEncode("文件", System.Text.Encoding.UTF8))
      

  7.   

    在输出时加上一句Response.Charset=""
      

  8.   

    FileName="c:\file\2003年度分析报告.doc"
    ExportFileName="2003年度分析报告.doc"
    Response.Clear()
    Response.ClearHeaders()
    Response.Buffer = False
    Response.ContentType = FileContentType
    Response.AppendHeader("Content-Disposition", "attachment;filename=" + System.Web.HttpUtility.UrlEncode(ExportFileName, System.Text.Encoding.Default))
    Response.WriteFile(FileName)
    Response.Flush()
    Response.Close()在Win98下乱码,在客户端Win2000及Win2003下弹出的“下载”对话框中乱码,但点击保存后会弹出一个“另存为”对话框的文件名位置显示正常。不知何故?
    我的服务器web.config配置必须为
    <globalization  requestEncoding="GB2312" responseEncoding="GB2312" />
    如果将
    Response.AppendHeader("Content-Disposition", "attachment;filename=" + System.Web.HttpUtility.UrlEncode(ExportFileName, System.Text.Encoding.Default))
    改成
    Response.AppendHeader("Content-Disposition", "attachment;filename=" + System.Web.HttpUtility.UrlEncode(ExportFileName, System.Text.Encoding.GetEncoding("GB2312")))
    那么“下载”对话框显示正常,但点击保存按钮后弹出一个“另存为”对话框,框中显示的文件名却为乱码。
    请问有什么办法?
      

  9.   

    试试不要指定文件名的编码:
    Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(ExportFileName))
      

  10.   

    试试在 <globalization  requestEncoding="GB2312" responseEncoding="GB2312" /> 中再加上 fileEncoding="gb2312"
      

  11.   

    我的web.config已经是这样。
    <globalization requestEncoding="GB2312" responseEncoding="GB2312" culture="zh-CN" fileEncoding="GB2312" />
    请大家再帮我看看。
      

  12.   

    我的web.config如下:<globalization requestEncoding="gb2312" responseEncoding="gb2312" />我帮你测试的代码:
    Response.AppendHeader("Content-Disposition", "attachment;filename="+System.Web.HttpUtility.UrlEncode("人员表.xls",System.Text.Encoding.UTF8 ));
    Response.ContentType="application/vnd.ms-excel";
    Response.Charset="";
    Response.WriteFile("人员表.xls");我得到的结果:全部都显示正常!!!!!!!!!!!!!!!下载对话框,文件中的内容都是正常的中文!
      

  13.   

    我也不知道为什么会这样,客户端我的是W2K SP4+IE6 SP1+OFFICE XP
      

  14.   

    to  liuyong_lll(孤醉) 不要多此一举  web.config :<globalization requestEncoding="gb2312" responseEncoding="gb2312" />  不需要配置 utf-8默认就可以Response.AppendHeader("Content-Disposition", "attachment;filename="+System.Web.HttpUtility.UrlEncode("人员表.xls",System.Text.Encoding.UTF8 ));就可以解决问题了