1. 程式人生 > >PHP和javascript中url編碼解碼詳解

PHP和javascript中url編碼解碼詳解

http 遇到 註意 spa color 空格 www. col test

在實際開發中,我們可能會遇到路徑編碼解碼的問題,下面總結了一下:

PHP中:

  1、urlencode(編碼),urldecode(解碼)

$a = urlencode(‘http://www.baidu.com?name=test&query=字母‘);
echo $a
//http%3A%2F%2Fwww.baidu.com%3Fname%3Dtest%26query%3D%E5%AD%97%E6%AF%8D

  2、rawurlencode、rawurldecode

  這個函數跟上面的大部分一模一樣,就一點不同:對空格的處理,urlencode處理成‘+‘,rawurlencode處理成‘%20‘

註意:編碼和解碼函數是成對的,用哪個函數編碼,就要用它對應的解碼函數解碼,不能混用。

JavaScript:

  3、encodeURI 和 decodeURI

  原理:返回編碼為有效的統一資源標識符 (URI) 的字符串,不會被編碼的字符:! @ # $ & * ( ) = : / ; ? + ‘

encodeURI(‘http://www.baidu.com?name=test&query=百度‘);
//http://www.baidu.com?name=test&query=%E7%99%BE%E5%BA%A6

  4、encodeURIComponent 和 decodeURIComponent

  原理:對URL的組成部分進行個別編碼,而不用於對整個URL進行編碼,一般只用於路徑裏某個參數編碼

encodeURIComponent(‘http://www.baidu.com?name=test&query=百度‘); 
//http%3A%2F%2Fwww.baidu.com%3Fname%3Dtest%26query%3D%E7%99%BE%E5%BA%A6

PHP和javascript中url編碼解碼詳解