在JavaScript中编码URL?

在JavaScript中编码URL?

如何使用JavaScript安全地对URL进行编码,以便将其放入GET字符串?

var myUrl = " 
var myOtherUrl = "http://example.com/index.html?url=" + myUrl;

我假设你需要myUrl在第二行编码变量?



海绵宝宝撒
浏览 738回答 4
4回答

肥皂起泡泡

你有三个选择:escape() 不会编码: @*/+encodeURI() 不会编码: ~!@#$&*()=:/,;?+'encodeURIComponent() 不会编码: ~!*()'但在你的情况下,如果你想将URL传递给GET其他页面的参数,你应该使用escape或encodeURIComponent,但不是encodeURI。请参阅Stack Overflow问题最佳实践:escape或encodeURI / encodeURIComponent以供进一步讨论。

噜噜哒

坚持下去encodeURIComponent()。该函数encodeURI()不打算编码在URL中具有语义重要性的许多字符(例如“#”,“?”和“&”)。escape()不推荐使用,并且不打算编码“+”字符,这些字符将被解释为服务器上的编码空格(并且,正如其他人所指出的那样,不能对非ASCII字符进行正确的URL编码)。对于encodeURI()和encodeURIComponent()其他地方之间的区别有一个很好的解释。如果要对某些内容进行编码以便可以安全地将其作为URI的一个组件包含在内(例如作为查询字符串参数),则需要使用encodeURIComponent()。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript