6

背后的原因是什么URLEncodedFormat()转义有效 URL 字符

有效字符:

- _ . ! ~ * " ( )

CF8 Doc说:“[转义URLEncodedFormat()] 具有等效十六进制转义序列的非字母数字字符。” 但是,为什么要转义有效的 URL 字符?

4

3 回答 3

11

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

ASP 的 Server.URLEncode() 和 php urlencode() 一样,除了 - 和 _。此外,在 javascript 中,encodeURIComponent() 函数会将所有非字母数字字符编码为十六进制等价物。

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

于 2009-06-29T01:12:35.010 回答
1

有效 url 字符的编码是否会导致错误或问题?

一个问题可能是,如果不这样做,如果您在电子邮件中嵌入带有非编码字符的链接,电子邮件软件可能会决定将链接分成两行。

但是,如果您使用完全编码的 url,那么这种可能性就会大大降低。只是一种看待它的方式。

于 2009-06-29T17:35:56.523 回答
0

至少在 " 的情况下,我可以看到,在将 URL 用作锚标记中的链接时,最好对其进行编码。

于 2009-06-30T10:21:58.980 回答