PHP 5.3 以降であれば rawurlencode が RFC 3986 (2005年) に対応している。この関数は以前 RFC 1738 (1994年) 対応だったので、互換性を失っている。JavaScript の場合、RFC 2396 に対応する encodeURIComponent を使って、RFC 3986 対応の URL エンコード関数を定義する必要がある。コードの例は MDN に掲載されている。 function fixedEncodeURIComponent (str) { return encodeURIComponent(str).replace(/[!'()]/g, escape).replace(/\*/g, "%2A"); }