当文件名是中文时,下载弹出筐后点击打开,提示乱码

hxc0906 2005-11-04 11:53:20
是excel文件名问题,如果是中文的在线打开出错,但下载后一切正常,而且在弹出的【下载与保存】的筐中显示的中文文件名都是正确的,具体代码如下,请各位大侠帮忙看一下:
Response.Clear()
Response.ClearHeaders()
Response.Buffer = False
Response.Charset = "GB2312"
Response.ContentEncoding = System.Text.Encoding.UTF8
Response.ContentType = "application/octet-stream"
Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(DownloadFile.FullName, System.Text.Encoding.UTF8))
Response.AppendHeader("Content-Length", DownloadFile.Length.ToString)
Response.WriteFile(DownloadFile.FullName)
Response.Flush()
Response.End()
是哪里出了问题,如何才能点击【打开】后能正确打开,而不提示“找不到文件名(后面一堆乱码)”
...全文
381 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
hxc0906 2005-11-21
  • 打赏
  • 举报
回复
up
hxc0906 2005-11-15
  • 打赏
  • 举报
回复
楼上说的是客户段的设置吧,我需要解决的是在服务器段的程序问题,郁闷中
hxc0906 2005-11-14
  • 打赏
  • 举报
回复
问题还未解决,自己顶一下先
newnan 2005-11-14
  • 打赏
  • 举报
回复
IE设置问题:
工具-〉选项-〉高级-〉选中始终使用utf-8发送URl连接
hxc0906 2005-11-08
  • 打赏
  • 举报
回复
楼上的兄弟,这样是不行的
herodraw 2005-11-08
  • 打赏
  • 举报
回复
把我的那个 里面的doc 改称xls try
hxc0906 2005-11-06
  • 打赏
  • 举报
回复
up
linpihong 2005-11-04
  • 打赏
  • 举报
回复
string strFile = Server.MapPath(null) + "\\download\\sss.doc";
if(!System.IO.File.Exists(strFile))
{
Response.Write("<script language='javascript'>alert('对不起,文件不存在!');</script>");
return;
}
Response.Clear();
Response.ClearHeaders();
Response.Charset = "GB2312";
Response.ContentEncoding =System.Text.Encoding.UTF8;
Response.ContentType = "application/octet-stream";
FileInfo fi=new FileInfo(strFile);
Response.AddHeader("Content-Disposition","attachment; filename=" + HttpUtility.UrlEncode(fi.Name));
Response.AddHeader("Content-Length",fi.Length.ToString());
byte[] tmpbyte=new byte[1024*8];
FileStream fs=fi.OpenRead();
int count;
while((count=fs.Read(tmpbyte,0,tmpbyte.Length))>0)
{
Response.BinaryWrite(tmpbyte);
Response.Flush();
}

fs.Close();
Response.End();
hxc0906 2005-11-04
  • 打赏
  • 举报
回复
不是后缀名的问题,后缀能正确显示,但前面的名称是中文的话就会乱码,但是在弹出的【下载与保存】的筐中显示的中文文件名都是正确的,而且下载到本地后一切正常
herodraw 2005-11-04
  • 打赏
  • 举报
回复
下面是doc的,我用的 自己改以下后缀就可以了
dim strWh as string="中文"
Dim resp As HttpResponse
resp = Page.Response
Page.Response.Charset = "gb2312"
resp.ContentType = "DOC"
Page.Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312")
Page.Response.AppendHeader("Content-Disposition", "attachment;filename="& System.Web.HttpUtility.UrlEncode(strWh,System.Text.Encoding.UTF8)& ".doc")

62,051

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧