URIまたはURLで使用できる文字をRFC3986で定義している。
This document obsoletes [RFC2396], which merged “Uniform Resource Locators” [RFC1738] and “Relative Uniform Resource Locators” [RFC1808] in order to define a single, generic syntax for all URIs.
RFC3986が分散したURIの定義を全て統合することを狙っている。
予約文字は不可、!、♯などの非予約文字は自由に使用可。
例えば、チルダをurlencodeすると、%7Eに変換されるが、rawurlencodeなら、チルダとなる。
<?php $str = "~"; echo urlencode($str). "<br>"; echo rawurlencode($str);