PHP – rawurlencode()和urlencode()的区别

rawurlencode()和urlencode()函数在PHP中都用于URL编码,但它们之间存在一些细微的区别:

 

  1. 处理空格的方式
    • urlencode()函数会将空格编码为加号(+)。
    • rawurlencode()函数会将空格编码为 %20
  2. 处理特殊字符的方式
    • urlencode()函数会将除了 -_.~ 之外的所有字符编码。
    • rawurlencode()函数会将所有非字母数字字符编码。
  3. 对于'~的处理
    • urlencode()函数会将'编码为%27~编码为%7E
    • rawurlencode()函数不会对'~进行编码,因为它们是在URL中保留字符。

总结:rawurlencode()函数更严格,会对更多的字符进行编码,而urlencode()函数则相对宽松一些,会保留一些字符。

 

URL格式标准,推荐使用rawurlencode() 和rawurldecode() 进行URL编码和解码操作。

THE END