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