urlencode 和 rawurlencode区别


urlencode:编码 URL 字符串

       手册上是这样解释的:

              返回字符串,此字符串中除了 -_. 之外的所有非字母数字字符都将被替换成百分号(%)后跟两位十六进制数,空格则编码为加号(+)。此编码与 WWW 表单 POST 数据的编码方式是一样的,同时与 application/x-www-form-urlencoded 的媒体类型编码方式一样。由于历史原因,此编码在将空格编码为加号(+)方面与 RFC1738 编码(参见 rawurlencode())不同。  

rawurlencode:根据 » RFC 3986 编码指定的字符。

 

俩个对应的解码是:urldecode,rawurldecode;

来个例子比较好对比:     

 1 <?php  2 header("Content-type:text/html;charset=utf-8");  3     $str = "http://www.baidu.com?name=多多喜 ";  4     echo rawurlencode($str);  5     echo "<br>";  6     echo rawurldecode($str);  7     echo "<br>";  8     $str1 = "http://www.baidu.com?name=多多喜 ";  9     echo urlencode($str1); 10     echo "<br>"; 11     echo urldecode($str1);

结果:

  

http%3A%2F%2Fwww.baidu.com%3Fname%3D%E5%A4%9A%E5%A4%9A%E5%96%9C%20 http://www.baidu.com?name=多多喜
 http%3A%2F%2Fwww.baidu.com%3Fname%3D%E5%A4%9A%E5%A4%9A%E5%96%9C+ http://www.baidu.com?name=多多喜 

可以看出,就空格的差异。。urlencode  转化成 %20;rawurlencode 转换成+


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM