在JavaScript中编码URL?如何使用JavaScript安全地对URL进行编码,以便将其放入GET字符串?var myUrl = "
var myOtherUrl = "http://example.com/index.html?url=" + myUrl;我假设你需要myUrl在第二行编码变量?
4 回答
肥皂起泡泡
TA贡献1829条经验 获得超6个赞
你有三个选择:
escape()
不会编码:@*/+
encodeURI()
不会编码:~!@#$&*()=:/,;?+'
encodeURIComponent()
不会编码:~!*()'
但在你的情况下,如果你想将URL传递给GET
其他页面的参数,你应该使用escape
或encodeURIComponent
,但不是encodeURI
。
请参阅Stack Overflow问题最佳实践:escape或encodeURI / encodeURIComponent以供进一步讨论。
噜噜哒
TA贡献1784条经验 获得超7个赞
坚持下去encodeURIComponent()
。该函数encodeURI()
不打算编码在URL中具有语义重要性的许多字符(例如“#”,“?”和“&”)。escape()
不推荐使用,并且不打算编码“+”字符,这些字符将被解释为服务器上的编码空格(并且,正如其他人所指出的那样,不能对非ASCII字符进行正确的URL编码)。
对于encodeURI()
和encodeURIComponent()
其他地方之间的区别有一个很好的解释。如果要对某些内容进行编码以便可以安全地将其作为URI的一个组件包含在内(例如作为查询字符串参数),则需要使用encodeURIComponent()
。
添加回答
举报
0/150
提交
取消