高分求解。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