tom*_*mes 182 url get http query-parameters query-string
我试图发送一个包含带&符号字符串的GET消息,但无法想象如何在URL中转义&符号.
例:
http://www.example.com?candy_name=M&M
result => candy_name = M
Run Code Online (Sandbox Code Playgroud)
我也尝试过:
http://www.example.com?candy_name=M\&M
result => candy_name = M\\
Run Code Online (Sandbox Code Playgroud)
我手动使用URL,所以我只需要正确的字符.
我不能使用任何库.怎么做到呢?
Ble*_*der 312
它们需要进行百分比编码:
> encodeURIComponent('&')
"%26"
Run Code Online (Sandbox Code Playgroud)
所以在你的情况下,URL看起来像:
http://www.mysite.com?candy_name=M%26M
Run Code Online (Sandbox Code Playgroud)
Ale*_*x W 38
这不仅适用于URL中的&符号,也适用于所有保留字符.其中一些包括:
# $ & + , / : ; = ? @ [ ]
Run Code Online (Sandbox Code Playgroud)
这个想法与&在HTML文档中编码相同,但除了在HTML文档中之外,上下文已经更改为在URI中.因此,百分比编码可以防止在两个上下文中解析问题.
当你需要将URL放在另一个URL中时,这个方便派对的地方很多.例如,如果您想在Twitter上发布状态:
http://www.twitter.com/intent/tweet?status=What%27s%20up%2C%20StackOverflow%3F(http%3A%2F%2Fwww.stackoverflow.com)
Run Code Online (Sandbox Code Playgroud)
我的推文中有很多保留字符,即?'():/我编码了statusURL参数的整个值.当使用mailto:具有消息正文或主题的链接时,这也很有用,因为您需要编码body和subject参数以保持换行符,符号等不变.
当保留集中的字符("保留字符")在特定上下文中具有特殊含义("保留目的"),并且URI方案表明有必要将该字符用于其他目的时,则该字符必须进行百分比编码.对保留字符进行编码的百分比涉及将字符转换为ASCII中对应的字节值,然后将该值表示为一对十六进制数字.然后在URI中使用以百分号("%")开头的数字作为转义字符,代替保留字符.(对于非ASCII字符,通常将其转换为UTF-8中的字节序列,然后每个字节值如上所示.)保留字符"/",例如,如果在"path"组件中使用一个URI的特殊含义是路径段之间的分隔符.如果根据给定的URI方案,"/"需要在路径段中,则必须在段中使用三个字符"%2F"或"%2f"而不是原始"/".
http://en.wikipedia.org/wiki/Percent-encoding#Percent-encoding_reserved_characters
Ant*_*nio 10
我想对Blender 的解决方案添加一点评论。
您可以执行以下操作:
var link = 'http://example.com?candy_name=' + encodeURIComponent('M&M');
Run Code Online (Sandbox Code Playgroud)
输出:
http://example.com?candy_name=M%26M
Run Code Online (Sandbox Code Playgroud)
这样做的伟大之处在于它不仅适用于&,而且适用于任何特殊角色。
例如:
http://example.com?candy_name=M%26M
Run Code Online (Sandbox Code Playgroud)
输出:
var link = 'http://example.com?candy_name=' + encodeURIComponent('M&M?><')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
276192 次 |
| 最近记录: |