utf-8转gb2312编码问题

tornado379 2006-11-13 11:18:53
从一个编码为utf-8的页面传参数到另一个编码为gb2312的页面,碰到中文乱码的问题。请各位高手指教。我用如下函数转换,但还是有部分中文无法正常显示(显示为?)。请高手们帮忙分析一下或提供解决方法。只有这么多分了,谢谢了!
...全文
274 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
tornado379 2006-11-13
  • 打赏
  • 举报
回复
TOaspgreener(水若寒):
我download.asp页面有<%@ codepage=936%>
在A页面传参数时用了server.URLEncode()方法。
tornado379 2006-11-13
  • 打赏
  • 举报
回复
页面结构大概如下。
A页面:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Untitled Page</title>
</head>
<body>
<%
Response.Redirect "download.asp?FileName=" & server.URLEncode("一般性问题.pdf")
%>
</body>
</html>

B页面(download.asp):

<%
dim szFileName
szFileName=StreamToStr(request("FileName"))
response.Write szFileName

Function StreamToStr(sStream)
dim dr
Set dr=Server.CreateObject("Adodb.Stream")
dr.Mode=3
dr.Type=2
dr.Open
dr.Charset="GB2312"
dr.WriteText sStream
dr.Position=0
dr.Charset="UTF-8"
StreamToStr=dr.ReadText
dr.Close
Set dr=Nothing
End Function
%>
hbjmdx008 2006-11-13
  • 打赏
  • 举报
回复
UP
aspgreener 2006-11-13
  • 打赏
  • 举报
回复
另外最好给传的参数加上escape,然后在用unescape解密。比如有一个值为val那么先用escape(val)加密,然后再在需要的地方解密。unescape(Request("val"))
aspgreener 2006-11-13
  • 打赏
  • 举报
回复
在带有中文编码的文件第一行加上<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
tornado379 2006-11-13
  • 打赏
  • 举报
回复
Function StreamToStr(sStream)
dim dr
Set dr=Server.CreateObject("Adodb.Stream")
dr.Mode=3
dr.Type=2
dr.Open
dr.Charset="GB2312"
dr.WriteText sStream
dr.Position=0
dr.Charset="UTF-8"
StreamToStr=dr.ReadText
dr.Close
Set dr=Nothing
End Function
tornado379 2006-11-13
  • 打赏
  • 举报
回复
没有人帮忙解决吗?

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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