urlencode与rawurlencode

urlencode -_. 之外的所有非字母数字都将被替换成百分号(%)后跟两位十六进制数(ASCII码值),空格则编码为加号(+)。此编码与 WWW 表单 POST 数据的编码方式是一样的,同时与 application/x-www-form-urlencoded 的媒体类型编码方式一样。

rawurlencode除 -_. 之外的所有非字母数字字符都将被替换成百分号(%)后跟两位十六进制数。这是在 » RFC 3986 中描述的编码,是为了保护原义字符以免其被解释为特殊的 URL 定界符,同时保护 URL 格式以免其被传输媒体(像一些邮件系统)使用字符转换时弄乱。

区别:

空格

  • urlencode +

  • rawurlencode %20

波浪线

在 PHP 5.3.0 之前,rawurlencode 根据 » RFC 1738 来编码波浪线(~)。

5.3.4 rawurlencode() 使用了 EBCDIC,所以波浪线字符不会再被编码。

  • urlencode %7E

  • rawurlencode ~

你可能感兴趣的:(urlencode,rawurlencode,RFC3986)