| | | | | | | | | | | | | | |  
 
   收藏 |  网络安全 |  ASP技术 |  专业名词  |  资料下载 |  VB.NET技术 |  网络编程 |  网页设计 |  网站建设 |  c#.net技术 |  网络营销 |  网站推广 |
奇迹网络
技术园地
首页>>技术园地>>ASP技术>>关于处理GET方式提交的含有特殊字符的参数
关于处理GET方式提交的含有特殊字符的参数
来源:本站原创 时间:2007-9-4 20:09:17 编辑:admin

    曾经有一位朋友遇到这样一个问题,一产品名称为A&T Plastic,在产品列表中就产生了这样的一个联接A&T Plastic,在服务器端接收此参数的时候怎么也无法接收到准确的产品名。
当时就问我,如何解决,也许是当时忙吧,随口告诉他用HTMLENCODE方法,对方试告诉并没有能解决这个问题。我当时没有再给予回答,偶尔想起实在是对不起,我讲错了。今日闲暇就整理了一下如何处理GET方式提交的含有特殊字符的参数,以表内心的愧疚。

特殊特殊字符的含义
————————————————————————————
    字符        特殊字符的含义              URL编码
   #            用来标志特定的文档位置      %23
   %            对特殊字符进行编码          %25
   &            分隔不同的变量值对          %26
   +            在变量值中表示空格          %2B
   \            表示目录路径                %2F
   =            用来连接键和值              %3D
   ?            表示查询字符串的开始        %3F

当键值中含有以上列表中的一些字符时就无法准确的接收其中的值。

<%
'定义含有特殊字符的字符串
str="parameter=#%&+\=?value"
'用URLEncode方法进行编码
strurlencode=server.URLEncode(str)
'用HTMLEncode方法进行编码
strhtmlencode=server.HTMLEncode (str)
'显示所有的querysting字符
Response.Write "QueryString:"
Response.Write Request.QueryString
'显示传递的参数
Response.Write "
Parameter is:" & str &"
"
Response.Write "QueryParameter="
Response.Write Request.QueryString  ("str")

%>







Str UrlEncode Method


 


Str HtmlEncode Method






显示结果
QueryString:
Parameter is:parameter=#%&+\=?value
QueryParameter=
Str UrlEncode Method
Str HtmlEncode Method
点击连接1,结果
QueryString:str=parameter%3D%23%25%26%2B%5C%3D%3Fvalue%3C%2Fhtml%3E
Parameter is:parameter=#%&+\=?value
QueryParameter=parameter=#%&+\=?value
Str UrlEncode Method
Str HtmlEncode Method
此时我们发现好象参数值中的没有能正确接收到,当我们查看原代码的时候就会发现其实已经准确的接收到了,原因是“”是标准html tag ,经过浏览器解释后就不会显示出来了。
点击连接2,结果
QueryString:str=parameter=
Parameter is:parameter=#%&+\=?value
QueryParameter=parameter=
Str UrlEncode Method
Str HtmlEncode Method
此时就会发现在#后面没有能正确接收到,而是被解释为锚点的开始,在"#"后面的为锚的名称。

结论:在含有以上列表中具有特殊功能的特殊字符的字符串,作为参数用GET方式传递时,只需要用URLENCODE方法处理一下就可以拉。如果不想让浏览者看到含后HTML TAG的字符串的具体值值是,我们可以用HTMLENCODE处理一下。

PHP中用函数urlencode()就可以拉,这里就不在举例了。

 

 

 

 

 
   北京总部    太原分公司    English
北京网站建设 网站建设 北京网站制作 网站制作 北京网站建设 密云网站建设 网站建设 北京网站建设 北京网站制作 北京网站建设 上海网站建设 博网设计北京网站建设 上海网站建设 上海网站建设 深圳网站建设 网站制作

Copyright © 2007 Itqiji.com Inc. All rights reserved. 奇迹网络 版权所有

联系电话:010-80749631    010-82416384  
手   机:15001106568                                    
联系 QQ: 450338384奇迹网络     23287943奇迹网络 京ICP备05047545号
联系地址:海淀区上地信息路19号1号楼319                  
联系邮箱:qijiforever#yahoo.com.cn(把#换成@就可以了