请问问什么我在直接打开中文附件时名称会变成乱码!而如果选择另存名称就是正确的,我该如何解决,谢谢 请问问什么我在直接打开中文附件时名称会变成乱码!而如果选择另存名称就是正确的,我该如何解决,谢谢!(kunting) 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 试试看,看是不是把web.config里面的 <globalization requestEncoding="utf-8" responseEncoding="utf-8"/>改成<globalization requestEncoding="gb2312" responseEncoding="gb2312"/> <globalization fileEncoding="gb2312" requestEncoding="gb2312" responseEncoding="gb2312"/> try:add the following code before render your attachment,Response.ContentEncoding = System.Text.Encoding.GetEncoding("utf-8"); //or gb2312 这些方法我都有试过了,如果用asp一点问题都没有!下面是我的代码:<globalization requestEncoding="GB2312" responseEncoding="GB2312" fileEncoding="gb2312"/>Response.Charset = "GB2312";Response.ContentEncoding =System.Text.Encoding.GetEncoding("GB2312");Response.ContentType = fileType;Response.AddHeader("Content-Disposition", "attachment; filename="+System.Web.HttpUtility.UrlEncode(fileName));//.UrlEncode(fileName,System.Text.Encoding.UTF8));Response.BinaryWrite(context);Response.Flush();Response.End(); 是不是.NET的内部编码是采用utf8编码的员工缘故呢,我如何能改变内部编码呢 其实不是乱码,是URLENCODE过的名字,我也一直希望能解决这个问题.关注,顺带帮你顶 谢谢!如果用URLENCODE过的名字直接打开附件,会存在无法附件的现象,提示是无法找到该文件,我想这个问题应该是由于名称转换后过常引起的!看来应该微软的问题了 globalization requestEncoding="GB2312" responseEncoding="GB2312" fileEncoding="gb2312"/ 这个位置没必要修改 还原回原来的旧可以了 看来实在不成只能用asp来完成这项任务了! 是文件名被unicode编码后的结果,不是乱码,而且如果中文字符过长,编码后的长度超过256个字符,就会报错,打不开文件,还没找到什么好的解决办法 以前在传递中文参数时,用过了HttpUtility.UrlEncode(str,System.Text.Encoding.Default)编码和用HttpUtility.UrlDecode(str,System.Text.Encoding.Default)来解码,其中默认字符集为gb2312。结果是令人失望的!不知道是什么原因某些汉字它解不出来。只好用脚本encodeURI方法来处理中文字符的问题了! 看来遇到我这样问题的人不在少数!不知道这算不算微软的一个bug net使用动软代码生成器,生成模板时报错 分不够了!但请各位大虾帮帮忙!重写了一个控件,但是不知道如何使用? 关闭父对话框,打开新页面 一个简单的网页数据采集,请教大家有什么好方法 关于打印方案的求助 在原设计好的.rpt报表模板中,如何不改变原有的报表定义而增加几个新的字段? 求助!!ASP.NET连接ORICLE数据库!!急!! DataGrid的模板itemTemplate是个checkbox怎么得到SelectIndex? 请教一下HyperLink的问题 搜集asp.net 检测用在线的方法(答者有分) 一个奇怪的问题 datagrid的模板列中textbox如何限定只能输入数字?
改成<globalization requestEncoding="gb2312" responseEncoding="gb2312"/>
add the following code before render your attachment,
Response.ContentEncoding = System.Text.Encoding.GetEncoding("utf-8"); //or gb2312
下面是我的代码:
<globalization requestEncoding="GB2312" responseEncoding="GB2312" fileEncoding="gb2312"/>
Response.Charset = "GB2312";
Response.ContentEncoding =System.Text.Encoding.GetEncoding("GB2312");Response.ContentType = fileType;
Response.AddHeader("Content-Disposition", "attachment; filename="+System.Web.HttpUtility.UrlEncode(fileName));//.UrlEncode(fileName,System.Text.Encoding.UTF8));
Response.BinaryWrite(context);
Response.Flush();
Response.End();
关注,顺带帮你顶