1. 程式人生 > >解決URLencode編碼時將空格轉成+的問題

解決URLencode編碼時將空格轉成+的問題

根據官方文件:

1string urlencode(string $str)

此函式便於將字串編碼並將其用於 URL 的請求部分,同時它還便於將變數傳遞給下一頁。

返回字串,此字串中除了-_. 之外的所有非字母數字字元都將被替換成百分號(%)後跟兩位十六進位制數,空格則編碼為加號(+)。此編碼與 WWW表單 POST 資料的編碼方式是一樣的,同時與application/x-www-form-urlencoded的媒體型別編碼方式一樣。由於歷史原因,此編碼在將空格編碼為加號(+)方面與RFC1738 編碼不同。 

解決方法:

使用rawurlencode進行編碼

1string rawurlencode(string 
$str)

根據 RFC 3986編碼指定的字元。 

返回字串,此字串中除了-_. 之外的所有非字母數字字元都將被替換成百分號(%)後跟兩位十六進位制數。這是在RFC 3986 中描述的編碼,是為了保護原義字元以免其被解釋為特殊的URL定界符,同時保護 URL格式以免其被傳輸媒體(像一些郵件系統)使用字元轉換時弄亂。