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