+ -
当前位置:首页 → 问答吧 → 文件下载时中文名字都为方格,已在页面中加入了gb2132了,还不行

文件下载时中文名字都为方格,已在页面中加入了gb2132了,还不行

时间:2011-10-17

来源:互联网

VBScript code

set rs0=server.CreateObject("adodb.recordset")
rs0.open "select * from File_Upload  where filename='"&request("FileName")&"'",conn,1,3
rs0("zt")="已下载"'//////将文件下载的状态改为已下载
rs0.update
response.redirect("UploadedFile/"&rs0("FileName"))'/////////指向文件名
rs0.close
set rs0=nothing


作者: germ007   发布时间: 2011-10-17

建议 rs0("FileName")首先转换成uft-8编码,然后再response.redirect("UploadedFile/"&rs0("FileName"))'/////////指向文件名

作者: zhoufeng0401   发布时间: 2011-10-17

谢谢,用了两种方法,还是不行
第一:改HTML编码为UTF-8 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 

第二:改文件编码 
用记事本打开,然后另存为,在下面选择“UTF-8”编码方式进行保存 

奇怪的是如果直接用链接方式〈a herf〉</a>方式的话可以是正常的中文名

作者: germ007   发布时间: 2011-10-17

用rs0.open "select * from File_Upload where filename='"&server.URLencode(request("FileName"))&"'",conn,1,3
也不行

作者: germ007   发布时间: 2011-10-17

response.redirect是会转向utf-8编码的,你可以Response.Write "window.open('UploadedFile/"&rs0("FileName")&"')"

作者: zhoufeng0401   发布时间: 2011-10-17

VBScript code

Response.Write("<script>window.open('UploadedFile/&rs0("FileName")')</script>")



写成这样,还是不行啊

作者: germ007   发布时间: 2011-10-17

呵呵,IE下需要转成URL编码

作者: chinmo   发布时间: 2011-10-17

Response.Write "<script>window.open('UploadedFile/"&rs0("FileName")&"')</script>"

作者: zhoufeng0401   发布时间: 2011-10-17

在页面最上端加上这句试试:
<%session.codepage=65001%>
.....
.....
<%
set rs0=server.CreateObject("adodb.recordset")
rs0.open "select * from File_Upload where filename='"&request("FileName")&"'",conn,1,3
rs0("zt")="已下载"'//////将文件下载的状态改为已下载
rs0.update
response.redirect("UploadedFile/"&rs0("FileName"))'/////////指向文件名
rs0.close
set rs0=nothing



%>

作者: qqm05   发布时间: 2011-10-17