为什么字符编码对URL很重要

Why is character encoding important for URLs?

本文关键字:URL 字符 编码 为什么      更新时间:2023-09-26

我目前正在学习JavaScript,我不明白为什么对URL进行编码很重要。

>>> var url = 'http://www.packtpub.com/scr ipt.php?q=this and that';
>>> encodeURI(url);

"http://www.packtpub.com/scr%20ipt.php?q=this%20and%20that"

例如,在本例中,将第一个URL更改为后一个URL的目的是什么。

这取决于您将如何处理该URL。

当您只使用document.location=url时,您不希望对其进行编码。

如果您计划将该URL作为变量传递,那么是的,您希望对其进行编码,否则会混淆浏览器。例如:

http://www.someurl.com?myFavwebsite=http://www.stackoverflow.com?someParam=test.

看看这怎么会让浏览器感到困惑?

顺便说一句,永远不要在url或php文件中使用空格。我总是发现这会造成不必要的压力

根据RFC 3986标准,URL中只允许有限数量的字符。例如,如果你在URL中有一个空格,这将使URL无效,除非你对其进行编码

通常,浏览器可以通过自己进行编码来处理未正确编码的URL,但作为网络开发人员,这不是你应该依赖的。

当使用URL作为另一个URL的参数时,URL编码也是至关重要的。在这种情况下,需要对URL的保留字符进行编码,而不仅仅是不允许的字符。但是,为此,您不使用encodeURI,而是使用encodeURIComponent