问题 在URL中有括号可以吗?


我为AdWord广告系列生成了网址,并且一些名为campangin的名称中包含括号 ( ) 和 [ ] 括号。一个示例网址看起来像这样

http://www.website.com/?utm_source=google%5BB%2B%5D&utm_medium=cpc&utm_content=google_ad(B)&utm_campaign=product

这样好吗?


3363
2017-11-05 01:59


起源

( ) 被称为括号。 - John Woo
你觉得“好”是什么意思? - Kinected
@JohnWoo嘿,把它们称为括号是不是仍然正确? - Alvin Wong
@JohnWoo en.wikipedia.org/wiki/Bracket - Gabriel Santos
打电话是对的 ( ), [ ] 要么 { } 括号,因为它们都包含在括号标记符号系列中,根据之前链接的文档(en.wikipedia.org/wiki/Bracket)。 - Luke


答案:


括号“()”可以在URL的查询部分中使用(即,“?”之后的部分)。允许但不是必需的,对它们进行%编码,如“%28”和“%29”。

括号“[]”应在查询部分中以%编码为“%5B”和“%5D”。

实际URL(即www.website.com的实际URL)实际存在(请使用www.example.com作为虚拟域名,保证不存在),因此正确形成。

URL语法的一般规则在Internet标准STD 66中定义,该标准是当前的 RFC 3986。其附录A规定了字符规则,将括号列为属于“sub-delims”组,在查询部分中不允许使用%-encoding,但括号属于“gen-delims”,应为%-encoded。


11
2017-11-05 07:00



那么为什么当我在论坛的括号中发布一个URL时,括号(谢天谢地)不会被解释?这是网站的非标准设计选择,以反映海报与我一样的可能性吗? - Sridhar-Sarnobat


哦,它很“很好”(因为Kinected也问:什么是 精细?)用于括号,但也许不用于方括号。但如果你害怕,总是使用 urlencode 用于查询字符串。

<?php
echo "http://www.example.com/index.php?boo=",urlencode("sample(parenthesis)and[square_brackets]");
//http://www.example.com/index.php?boo=sample%28parenthesis%29and%5Bsquare_brackets%5D

演示: http://codepad.org/ZKaROUr7


3
2017-11-05 02:15