为什么CFML中的URLEncodedFormat()会编码有效的URL字符?

Hen*_*nry 6 coldfusion urlencode

URLEncodedFormat()转义有效网址字符的原因是什么?

有效字符:

- _ . ! ~ * " ( )
Run Code Online (Sandbox Code Playgroud)

所述CF8文件表示,"[ URLEncodedFormat()逃逸]非字母数字字符与等效十六进制转义序列".但是,为什么要转义有效的URL字符?

Jay*_*son 11

它们是有效的,但是对我来说似乎很正常,如果你要求编程语言对url进行编码,它将所有非字母数字字符转换为十六进制等效字符串.

ASP的Server.URLEncode()做同样的事情,php urlencode()也做了 - 除了 - 和_.此外,在javascript中,encodeURIComponent()函数将所有非字母数字字符编码为十六进制等效字符.

无论如何,在使用用户输入来形成服务器请求以防止发生任何意外情况时,编码所有非字母数字字符是一个好主意.