On Wed, Jul 21, 2010 at 11:46 AM, Herbert Snorrason methanal@gmail.com wrote:
In any case, the attached patch updates url-encode to RFC3986 (or at least only passes that standard's "unreserved characters" through) and exposes it.
I suspect that the original portions of
- (find char "$-_.!*'()," :test #'char=)) + (find char "-_.~" :test #'char=)) (write-char char out)) - ((char= char #\Space) - (write-char #+ out))
are based on RFC 1738's more restricted list of characters:
Thus, only alphanumerics, the special characters "$-_.+!*'(),", and reserved characters used for their reserved purposes may be used unencoded within a URL. [1]
Since request parameters (which could include URIs) might appear in the HTTP request's URL, the parameters need to be URL encoded, not just composed of valid URI characters.
[1] http://www.rfc-editor.org/rfc/rfc1738.txt
//JT