在URL中有括号或括号可以吗?

时间:2012-11-05 01:59:33

标签: php html

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

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

这样可以吗?

2 个答案:

答案 0 :(得分:11)

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

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

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

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

答案 1 :(得分:3)

哦,对于括号,它是“很好”(如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

相关问题