URLEncodedFormat()
转义有效网址字符的原因是什么?
有效字符:
- _ . ! ~ * " ( )
CF8 Doc表示“[URLEncodedFormat()
转义”具有等效十六进制转义序列的非字母数字字符。“但是,为什么要转义有效的URL字符?
答案 0 :(得分:11)
它们是有效的,但对我来说似乎很正常,如果你要求编程语言url编码一个字符串,它将所有非字母数字字符转换为十六进制等效字符。
ASP的Server.URLEncode()做同样的事情,php urlencode()也做了 - 除了 - 和_。此外,在javascript中,encodeURIComponent()函数会将所有非字母数字字符编码为十六进制等效字符。
无论如何,在使用用户输入形成服务器请求以防止发生任何意外情况时,对所有非字母数字字符进行编码是一个好主意。
答案 1 :(得分:1)
有效网址字符的编码是导致错误还是问题?
一个问题可能是,如果不这样做,如果您在电子邮件中嵌入了带有非编码字符的链接,则电子邮件软件可能会决定将链接分成两行。
如果您使用完全编码的网址,则可能会大大减少这种情况。只是看待它的一种方式。
答案 2 :(得分:0)
我至少可以看到“当使用URL作为锚标记中的链接时对它进行编码会很好。