为什么字符编码对URL很重要
Why is character encoding important for URLs?
我目前正在学习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
。
相关文章:
- 使用RegExp查找url中的字符
- 为什么字符编码对URL很重要
- 由于存在标签('#')特殊字符,URL无法工作
- 使用 window.location.search 时,URL 中的字符会更改
- 使用特殊字符 Javascript 对 URL 进行编码
- 如何使用jQuery获取url的最后两个字符
- JavaScript删除URL数组中字符之前的所有内容
- URL中包含特殊字符的HTTP状态代码
- 如何从替换特殊字符的字符串中创建URL
- 如何获取去除不需要的字符的url的最后一个元素
- 删除 URL 哈希字符串中的前几个字符
- JavaScript 转到带有 Unicode 字符的 URL
- 将 URL 中的所有特殊字符(如“é”)替换为 JavaScript
- JavaScript 替换字符串和 URL 字符之前
- 将ascii字符发送到mailto而不达到URL限制的最有效方法
- IE : window.open url 超过 2,083 个字符
- 如何将 url 中的特殊字符作为参数值处理
- 在 url 中编码特殊字符的最佳方法
- 如何在最后一次出现某个字符后获取 url 中的参数
- HTML5-使用sms-href时删除URL字符