[转帖]【第五课】用ASP开发WAP新闻系统--字符的过滤替换与其重要性
(点击下载该文件)
【第五课】用ASP开发WAP新闻系统--字符的过滤替换与其重要性
手机浏览器对页面的WML结构非常严格,只要页面出现一个不符合核定标准的字符,将会导致整个页面无法显示。因此,对“非法字符”进行规
律替换,是非常必要的操作。这一课,我们就来讲一讲字符过滤。那些是所谓的“非法字符”,应该如何来避免呢!
打开配置文件config.asp,加入以下代码:
'//过滤字符
Function replaceStr(str)
Dim myStr
myStr = str
replaceStr = ""
If IsNull(myStr) Then
Exit Function
End If
myStr = Replace(myStr, "'", "'") ''为单引号,为了避免在后面的&被替换掉,所以在这里先把单引号还原
myStr = Replace(myStr, "$", "¥") '在WML里面“$”符号是表示变量,所以将其替换成¥
myStr = Replace(myStr, "&", "&")
myStr = Replace(myStr, " ", " ")
myStr = Replace(myStr, "<", "<")
myStr = Replace(myStr, ">", ">")
myStr = Replace(myStr, Chr(13), "<br/>") '将回车转换成换行
replaceStr = myStr
End Function
单引号是因为会对数据库语句造成影响,所以如果在执行数据库语句之前,必须将单引号替换',而我们这里是把他还原。对于$&<>这些符
号,主要是因为在WML里是特殊字符号,所以要显示时,必须将其解码。要重要强调的是“$”符号在WML里是表示变量,如果要显示“$”,需
要写成“$$”,这样显示出来的就是一个“$”,不会让程序出错!当然,上面替换的时候,也可以将“¥”改为“$$”,但RMB我们还是习惯
用¥这个符号了!
另外,在Ascii码表中,大于127小于178的这些符号,都有可能让手机无法正常显示页面,如果,要周全的话,也可以把这些符号给替换掉。在
这里,我们就先不讨论了,大家视需要扩展一下吧!下面附上两张Ascii码表,希望对大家有所帮助!
Ascii码表(一)
http://www.wapforum.cn/download/newsSystem/images/5_1.gif
Ascii码表(二)
http://www.wapforum.cn/download/newsSystem/images/5_2.gif
下面,我们就在NewsShow.asp来调试一下这一段过滤字符的代码。
打开模拟器,输入地址:http://localhost/NewsShow.asp?ID=1,显示一切正常。我们再打开NewsShow.asp文件,将content=rs(2)改成
content=rs(2)&"<",然后保存文件。在刷新http://localhost/NewsShow.asp?ID=1页面看一下。呵呵,页面报错了吧!这就是因为“<”符号没
有过滤的原因了!出错提示上有明显地一个红色标识,那里就是出错的位置,出错界面如图5-3所示。
http://www.wapforum.cn/download/newsSystem/images/5_3.gif
现在,我们将过滤的过程加到代码中去。
将Response.Write (rs(1)&"<br/>=*=*=*=*=*=<br/>"&Replace(content,chr(13),"<br/>"))一行中的Replace(content,chr(13),"<br/>")换成
replaceStr(content),保存文件,再次刷新页面看看效果!嘿嘿,正常显示的页面又回来了!当然,你还可以试试其他的“特殊符号”!
最后,记得把收尾工作再完善一下哦,刚刚content=rs(2)&"<"要重新改回content=rs(2)。^_^
【第五课到此结束,要知后事如何,请看下课讲解,o(∩_∩)o...哈哈】
=================================================================
【本文首发】 http://www.wapforum.cn/html/203/1683.htm ( 站长论坛)
【本文涉及的源码】 http://www.wapforum.cn/download/newsSystem/class/class5.rar
【联系交流】 联系QQ: 13431619,44459416,82890065
QQ交流群: 36508170
要了解更详细请到: http://www.wapforum.cn/html/list/203_1.htm
【注】 其余教程将后续推出,敬请关注! 如有问题,请到论坛发帖或者qq群(36508170)提问!我们将为你解答。
[此贴子已经被作者于2007-3-15 9:28:55编辑过]