高分求解。Response.AddHeader("Content-Disposition", "inline;filename=" & SaveAsFileName)这种方式,另存文件时文件是乱码。

机器人 2005-03-22 10:43:54
这个问题,实在没辙了。在SaveAsFileName 传过来的时候放在Session里。传过来没问题,等客户端打开,另存的时候就出现乱码了!后来采用QueryString方式并采用网上说的HttpUtility.UrlEncode(saveAsFileName)问题仍然存在。文件是以Excel在客户端打开的,整个页面统一编码为"shift_jis",页面内容显示正常。唯独保存文件名如果是日文的话,死活乱码。代码如下:

'客户要求,点击button,弹出新窗口,打开服务端生成的Excel
Session("FilePath") = ExcelMaker.MakeExcel(sessionId, sltReport, sltData)
Session("SaveAsFileName") = sltReport
'Dim targetForm As String = "WebForm1.aspx" & "?" & sltReport
Dim targetForm As String = "ExportForm.aspx"
Response.Write("<script language=javascript>window.open('" & targetForm & "')</script>")

'ExportForm.aspx.vb
If Not Page.IsPostBack Then
Dim FilePath As String = Session("FilePath").ToString()
Dim saveAsFileName As String = Session("SaveAsFileName").ToString()
Session.Clear()
Response.AddHeader("Content-Type", "application/vnd.ms-excel")
Response.AddHeader("Content-Disposition", "inline;filename=" & saveAsFileName)
Response.WriteFile(FilePath)
Response.End()
End If
...全文
1493 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
机器人 2005-03-22
  • 打赏
  • 举报
回复
楼上的不是吧。。。这可不行呀。。。。
Proyang 2005-03-22
  • 打赏
  • 举报
回复
我也遇到过类似问题,可以如下解决:

建议下载这个页面用ASP来做,不用ASP。NET来做。问题就会解决
机器人 2005-03-22
  • 打赏
  • 举报
回复
顺便问一下,客户端另存的文件夹为什么会默认在C:\Documents and Settings\FIREFOX\ASPNET\Local Settings\Temporary Internet Files\Content.IE5\ZQM1R25Z 这个目录下。Cache会把文件先存在这里吧。
机器人 2005-03-22
  • 打赏
  • 举报
回复
Re evaELLIS() wwei69() :
文件编码没有问题,文件内容正确显示。

Re webdiyer(陕北吴旗娃) :
奇怪的是用你这种方法,另存为时,文件名为:
%e6%90%8d%e7%9b%8a%e4%ba%88%e7%ae%97%e7%94%b3%e8%ab%8b%e7%b7%8f%e6%8b%ac%e8%a1%a8(%e6%90%8d%e4%ba%88%e2%84%961)_PF0010(1).xls
webdiyer 2005-03-22
  • 打赏
  • 举报
回复
试试:

Response.AddHeader("Content-Disposition", "inline;filename="&HttpUtility.UrlEncode(saveAsFileName,System.Text.Encoding.UTF8))
wwei69 2005-03-22
  • 打赏
  • 举报
回复
对,你的给文件一个编码格式
evaELLIS 2005-03-22
  • 打赏
  • 举报
回复
是编码的问题,你看看日文编码是多少,在它保存文件时需要编码格式
机器人 2005-03-22
  • 打赏
  • 举报
回复
请大家看看这问题如何解决呢?
DeltaCat 2005-03-22
  • 打赏
  • 举报
回复
日文?

!!
这个问题不能会
njuzgj 2005-03-22
  • 打赏
  • 举报
回复
UP
机器人 2005-03-22
  • 打赏
  • 举报
回复
没人能解决么?
机器人 2005-03-22
  • 打赏
  • 举报
回复
再顶,多谢各位啦。集思广益啊
机器人 2005-03-22
  • 打赏
  • 举报
回复
Re goody9807:
是通过复制模版文件生成的,模版文件如何设置编码?如果模版的问题,那么打开的文件内容就该是乱码了.现在就是文件名是乱码,其他都正常.
goody9807 2005-03-22
  • 打赏
  • 举报
回复
问题所在不再文件名 而是你在服务器端生成Excel文档时是如何生成的
必须设置它的编码格式
机器人 2005-03-22
  • 打赏
  • 举报
回复
看来原理的东西还是掌握不好,为什么我发现不了问题所在呢?

62,072

社区成员

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

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

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

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