Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Http URL中的转义符号_Http_Url_Get_Query String_Query Parameters - Fatal编程技术网

Http URL中的转义符号

Http URL中的转义符号,http,url,get,query-string,query-parameters,Http,Url,Get,Query String,Query Parameters,我正在尝试发送一条GET消息,其中包含带符号的字符串,并且无法理解如何在URL中转义符号 例如: http://www.example.com?candy_name=M&M result => candy_name = M 我还尝试: http://www.example.com?candy_name=M\&M result => candy_name = M\\ 我正在手动使用URL,所以我只需要正确的字符 data: "param1=getAccNos&

我正在尝试发送一条GET消息,其中包含带符号的字符串,并且无法理解如何在URL中转义符号

例如:

http://www.example.com?candy_name=M&M
result => candy_name = M
我还尝试:

http://www.example.com?candy_name=M\&M
result => candy_name = M\\
我正在手动使用URL,所以我只需要正确的字符

data: "param1=getAccNos&param2="+encodeURIComponent('Dolce & Gabbana') OR
var someValue = 'Dolce & Gabbana';
data : "param1=getAccNos&param2="+encodeURIComponent(someValue)

我不能使用任何图书馆。如何做到这一点?

它们需要进行百分比编码:

> encodeURIComponent('&')
"%26"
因此,在您的情况下,URL如下所示:

http://www.mysite.com?candy_name=M%26M

它们需要进行百分比编码:

> encodeURIComponent('&')
"%26"
因此,在您的情况下,URL如下所示:

http://www.mysite.com?candy_name=M%26M

尝试使用
http://www.example.org?candy_name=M%26M


另请参阅和一些详细信息。

尝试使用
http://www.example.org?candy_name=M%26M


另请参阅和一些详细信息。

您可以使用%字符“转义”URL中不允许的字符。见[RFC 1738]

上的ASCII值表


您可以看到
&
是26的十六进制-因此您需要M%26M。

您可以使用%字符来“转义”URL中不允许的字符。见[RFC 1738]

上的ASCII值表

您可以看到
&
是26的十六进制-因此您需要M%26M。

这不仅适用于URL中的符号,而且适用于所有URL。其中包括:

 # $ & + ,  / : ; = ? @ [ ]
这个想法与在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)
我的Tweet中有很多保留字符,即
?'():/
,因此我对
状态
URL参数的整个值进行了编码。这在使用具有消息正文或主题的
mailto:
链接时也很有用,因为您需要对
body
subject
参数进行编码,以保持换行符、符号等完好无损

当保留集中的字符(“保留字符”)已 特定上下文中的特殊含义(“保留目的”),以及URI scheme说有必要将该字符用于其他字符 则必须对字符进行百分比编码。百分比编码 保留字符涉及将字符转换为其 ASCII中对应的字节值,然后将该值表示为 一对十六进制数字。数字,前面有百分号 (“%”)用作转义字符,然后在URI中使用 代替保留字符。(对于非ASCII字符,它是 通常转换为UTF-8中的字节序列,然后转换为每个字节 值如上所示。)的保留字符“/” 例如,如果在URI的“path”组件中使用,则具有特殊的 作为路径段之间分隔符的含义。如果,根据 给定URI方案,“/”需要位于路径段中,然后 段中必须使用字符“%2F”或“%2F”,而不是原始字符 “/”

这不仅适用于URL中的符号,而且适用于所有URL。其中包括:

 # $ & + ,  / : ; = ? @ [ ]
这个想法与在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)
我的Tweet中有很多保留字符,即
?'():/
,因此我对
状态
URL参数的整个值进行了编码。这在使用具有消息正文或主题的
mailto:
链接时也很有用,因为您需要对
body
subject
参数进行编码,以保持换行符、符号等完好无损

当保留集中的字符(“保留字符”)已 特定上下文中的特殊含义(“保留目的”),以及URI scheme说有必要将该字符用于其他字符 则必须对字符进行百分比编码。百分比编码 保留字符涉及将字符转换为其 ASCII中对应的字节值,然后将该值表示为 一对十六进制数字。数字,前面有百分号 (“%”)用作转义字符,然后在URI中使用 代替保留字符。(对于非ASCII字符,它是 通常转换为UTF-8中的字节序列,然后转换为每个字节 值如上所示。)的保留字符“/” 例如,如果在URI的“path”组件中使用,则具有特殊的 作为路径段之间分隔符的含义。如果,根据 给定URI方案,“/”需要位于路径段中,然后 段中必须使用字符“%2F”或“%2F”,而不是原始字符 “/”


如果有人想在PHP中使用它,这可能会有所帮助

$variable ="candy_name=M&M";
$variable = str_replace("&", "%26", $variable);

如果有人想在PHP中使用它,这可能会有所帮助

$variable ="candy_name=M&M";
$variable = str_replace("&", "%26", $variable);

如果无法使用任何库对值进行编码, 或者


只需输入您的值“M&M”,而不是完整的URL;-)

如果无法使用任何库对值进行编码, 或者


只需输入您的值“M&M”,而不是完整的URL;-)

您可以使用此encodeURIComponent函数传递参数,这样就不必担心传递任何特殊字符

data: "param1=getAccNos&param2="+encodeURIComponent('Dolce & Gabbana') OR
var someValue = 'Dolce & Gabbana';
data : "param1=getAccNos&param2="+encodeURIComponent(someValue)

您可以使用此encodeURIComponent函数传递参数,这样就不必担心传递任何特殊字符

data: "param1=getAccNos&param2="+encodeURIComponent('Dolce & Gabbana') OR
var someValue = 'Dolce & Gabbana';
data : "param1=getAccNos&param2="+encodeURIComponent(someValue)

我想补充一点关于搅拌器解决方案的小评论

您可以执行以下操作:

var link = 'http://example.com?candy_name=' + encodeURIComponent('M&M');
这将产生:

http://example.com?candy_name=M%26M
这件事的好处在于它不仅适用于&而且适用于任何特殊的角色

例如:

var link = 'http://example.com?candy_name=' + encodeURIComponent('M&M?><')
我会的