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

时间:2012-09-08 23:46:17

标签: javascript html url console

我目前正在学习JavaScript,我不明白为什么编码网址很重要。

>>> 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的目的是什么。

2 个答案:

答案 0 :(得分:6)

这取决于您将使用该网址做什么。

当您使用document.location = url时,您不希望它被编码。

如果您打算将该URL作为变量传递,那么您希望它被编码,否则会混淆浏览器。例如:

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

看看这可能会让浏览器感到困惑吗?

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

答案 1 :(得分:5)

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

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

使用网址作为其他网址的参数时,网址编码也很重要。在这种情况下,需要对URL的保留字符进行编码,而不仅仅是非允许的字符。但是,为此,您不使用encodeURI,而是使用encodeURIComponent

相关问题