注册 登录
编程论坛 ASP.NET技术论坛

asp.net 中的怪现象(request.querystring的问题)

tm_ma 发布于 2007-03-20 14:38, 1236 次点击
我在用request的querystring数据集合时发现一个怪现象,当我给user_name赋有两个或更多个汉字时第二个程序正常显示,当我给他赋三个汉字时第二个程序显示为"天快?age=20你好,你的年龄是0",我不知道到底错在哪里,请指点!
_________________________________________________________________
<html>
<body>
<center>
<h2>请点击下面的超连接</h2>
<a href="4-2.aspx?user_name=天快明&age=20">点击</a>
</center>
</body>
</html>
_________________________________________________________________
<script language="VB" runat="server">
Sub page_load(Sender As Object, E As EventArgs)
Dim user_name As String '定义一个用户名变量
Dim age As Integer '定义一个年龄变量
user_name=Request.QueryString("user_name") '获取用户名
age=Request.QueryString("age") '获取年龄
Message.Text=user_name & "您好"
Message.Text=Message.Text & ",您的年龄是" & age.ToString
End Sub
</script>
<html>
<body>
<h4 align="center">Request对象示例</h4>
<form runat=server>
<asp:label id="Message" runat=server/>
</form>
</body>
</html>
5 回复
#2
冰镇柠檬汁儿2007-03-20 14:43
这个现象一点也不奇怪,建议你不要传中文,这个问题应该是对中文的支持问题
#3
heyongzhi2007-03-20 17:47
回复:(tm_ma)asp.net 中的怪现象(request.querystr...
是很头疼啊!!!
网上说有两中方式:一、web.config中加上
<globalization requestEncoding="gb2312" responseEncoding="gb2312"/>
我用上述方式传值不存在问题,但存在以下问题:
dim mclass as string
mclass = request.querystring("class")
dim str as string
str="select * from user where category=" & mclass
Dim Conn As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("database/tsgl.mdb"))
objConn.Open()
Dim ad As New OleDbadapter(str, Conn)
dim ds as new dataset
ad.fill(ds,"user") 错误提示:至少一个参数没有被指定值(将变量mclass换成"喜剧类"可正常运行)
objConn.Close()
....
没法又设了一个label控件,运行时发现mclass显示的是"喜剧类".
郁闷!!
第二种方法:Server.UrlDecode\Server.UrlEncode.但我是用的超链接(并且是用datalist控件绑定了的),更不知道加在哪!!!
#4
tm_ma2007-03-20 18:49
传英文可以
论坛效率好高啊~~~~~~~~
#5
tm_ma2007-03-20 21:21
字符编码问题,解决方法:修改web.config配置文件对应的节:
<globalization
requestEncoding="utf-8"
responseEncoding="utf-8"
/>
改为
<globalization
requestEncoding="gb2312"
responseEncoding="gb2312"
/>
#6
heyongzhi2007-03-22 22:15
回复:(tm_ma)asp.net 中的怪现象(request.querystr...
两种方法的问题已解决:
一、SQL语法错误,变量写法改为:str="select * from user where category= '"& mclass &"'"
二、如果使用<%# %>绑定,应该可以在#后面加Server.UrlDecode(Server.UrlEncode)
1