日期:2014-05-17  浏览次数:20810 次

asp下载,文件名乱码的问题。
文件名就叫做 “! #%&()+-.9;=X_????????.dwg”

要下载这个文件,代码写的时候,

Response.AddHeader "Content-Disposition" , " attachment; filename=" & "! #%&()+-.9;=X_????????.dwg"

Set ObjStream = Server.CreateObject("ADODB.Stream")
Objstream.Open
Objstream.Type = 1

Objstream.LoadFromFile "\\fsvr01\k\! #%&()+-.9;=X_????????.dwg"

Response.BinaryWrite ObjStream.Read
ObjStream.Close
Set ObjStream = Nothing

弹出的窗口,显示的文件名是乱码,但是文件可以正常打开,内容也正常,怎么解决文件名乱码的问题?

asp.net的解决方法会,,但是asp的怎么解决,我就蒙圈了。。。。

------解决方案--------------------
1 asp页面文件本身的编码用UTF-8
2 然后用以下函数编码文件名试试看

或者用第三方组件转编码
Chilkat Charset ActiveX
http://www.chilkatsoft.com/charset-activex.asp

VBScript code
Function URLEncode(s)
    On Error Resume Next
    Dim t
    t = ""
    For i = 1 To Len(s)
        t = t & "%" & Hex(Asc(Mid(s, i, 1)))
    Next
    URLEncode = t
End Function