为什么会这样呢?这是因为WAP在传递参数时均采用了UTF-8的编码方式,所以我们是不可以在WAP的URL地址中直接传递中文参数的。那么是不是就没有好的解决方法了呢,答案是否定的,我们看看QuickWAP是怎样解决这个问题的,先来预览一下代码运行效果图,如图1所示。
图1
图1的实例是一个歌名列表,当点击到某一首歌的链接时,链接传递中文参数--歌手名,并将其显示出来。程序源代码如下:
Set Wap=Server.CreateObject("QuickWap.WapNetSdk")
Wap.CardTitle="中国被爱可以在线"
Wap.PageHeader
'以下为文件正文。
Name=Wap.RequestText("Name") '接收传递的中文字符,并赋值给变量Name
Wap.WriteRow "您知道这些歌儿是谁的吗?"
If Name<>"" Then Wap.WriteRow "您选择的歌儿是" & Name & "唱的"
Wap.WriteRow Wap.A("",Wap.ThisFileName & "?Name=" & Wap.SubmitText("周杰伦"),"1. 夜曲")
Wap.WriteRow Wap.A("",Wap.ThisFileName & "?Name=" & Wap.SubmitText("孙楠/韩红"),"2. 美丽的神话")
Wap.WriteRow Wap.A("",Wap.ThisFileName & "?Name=" & Wap.SubmitText("成龙/金喜善"),"3. 无尽的爱")
Wap.WriteRow Wap.A("",Wap.ThisFileName & "?Name=" & Wap.SubmitText("潘玮柏"),"4. 不得不爱")
Wap.WriteRow Wap.A("",Wap.ThisFileName & "?Name=" & Wap.SubmitText("周杰伦"),"5. 发如雪")
Wap.WriteRow Wap.A("",Wap.ThisFileName & "?Name=" & Wap.SubmitText("周笔畅"),"6. 笔记")
Wap.WriteRow Wap.A("",Wap.ThisFileName & "?Name=" & Wap.SubmitText("花儿乐队"),"7. 嘻唰唰")
Wap.WriteRow Wap.A("",Wap.ThisFileName & "?Name=" & Wap.SubmitText("陈慧琳"),"8. 希望")
Wap.WriteRow Wap.Img("GoWAP.png")
Wap.PageFooter
Set Wap=Nothing
%>
代码看起来并不是很难,与WEB的URL参数传递相比,只是多了一个SubmitText函数。在接收参数值时也多了一个RequestText函数,下面我们简单介绍一下这两个函数。
名称 | SubmitText |
作用 | 用于传递中文字符的内容的函数。 |
声明 | Public Function SubmitText(Optional ByVal ToDoString As String) As String |
参数 | 设置需要传递的中文字符串内容,可以为某个变量。 |
备注 | 支持中英数字符混合传递。 |
名称 | RequestText |
作用 | 用于接收Submit函数传递中文字符的内容的函数。 |
声明 | Public Function RequestText(Optional ByVal ToDoString As String) As String |
参数 | 设置接收SubmitText提交的中文字符作为那个变量值的变量名。 |
备注 | 只能接收SubmitText它传递的中英文字符。 |
对于RequestText("Name")接收到的值是中文字符,例如接收到的为"中国",但是输出时,我们还要进行UTF-8编码输出,我们可以采用以下几种方法:
接收并输出的代码 | 输出的WML源代码 |
Wap.WriteRow Wap.RequestText("Name") | 中国 |
Wap.WriteOut Wap.RequestText("Name") | 中国 |
Response.write Wap.Ascii(RequestText("Name")) | 中国 |
Response.write RequestText("Name") | 中国 |
有了上面的基础后,我们就可以利用在数据库方面,以开发出更强大的功能,例如以下SQL语句:
......
Name=Wap.RequestText("Name")
Sql="Select * From HaoXiao Where Title like '%" & Name & "%'"
.........
以上代码仅作为抛砖引玉,本文不做过多讨论。
QuickWAP利用两个函数就轻松的解决了WAP中URL传递中文参数问题,让初接触WAP编程的开发人员不必再去辛辛苦苦编写那些烦琐的编码函数,而将精力放在最主要工作上去即可。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10294527/viewspace-127180/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/10294527/viewspace-127180/