urlencode和rawurlencode有什么区别?

10

我阅读了参考问题urlencode vs rawurlencode?的内容,这表明我应该使用rawurlencode

例如:

如果与其他系统的互操作性很重要,则使用rawurlencode似乎是可行的选择。

但为什么会有urlencode的发明呢?这是否意味着此函数无用?


我通常在我的所有应用程序中使用urlencode,并且它们都运行良好。这一切都与RFC 3986有关。 - AKS
不是无用的,但它使用特殊字符,很容易混淆。rawurlencode更好。 - geekman
为什么不在原回答下留言提问呢?我认为你的问题可能是重复的,如果你认为不是,请编辑它以使其明显。 - Madara's Ghost
它是为HTML标准发明的,参见RFC1866(HTML 2.0),特别是这里:http://tools.ietf.org/html/rfc1866#section-8.2 - 它基本上为常见输入文本节省了网络带宽。空格符号在文本中经常使用。现在不再是什么问题。 - hakre
1个回答

16

这要看你需要什么。它们之间的一个主要区别当然是它们编码的标准,但也会涉及到空格。

urlencode 的编码方式与表单数据的编码方式相同。

urlencode 将空格编码为加号(+)符号,而 rawurlencode 则将其编码为 %20

因此,在处理表单数据时,urlencode 是首选(因为表单将空格编码为 + 符号)。否则,我认为用 rawurlencode 更加明智。

例如,如果你想模仿通过 URL 提交的表单数据,那么就应该使用 urlencode。


因此,在处理表单数据时,urlencode 更可取(因为表单将空格编码为 + 符号)。你能用一个例子来解释一下吗?如果我们在这里使用 rawurlencode 会有什么问题? - Istiaque Ahmed

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接