What are the reasons behind URLEncodedFormat() escaping valid URL characters?
valid characters:
- _ . ! ~ * " ( )
The CF8 Doc said, “[URLEncodedFormat() escapes] non-alphanumeric characters with equivalent hexadecimal escape sequences.” However, why escape valid URL characters?
They are valid, but it seems pretty normal to me that if you ask a programming language to url encode a string that it converts all non alpha numeric chars to the hex equivalent.
ASP’s Server.URLEncode() does the same and php urlencode() does too except for – and _. Also, in javascript, the encodeURIComponent() function will encode all non alpha numeric chars to hex equivalents.
This is a good idea anyway to encode all non alpha numeric characters when using user input for forming server requests to prevent anything unexpected from happening.