19

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

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

这样好吗?

4

2 回答 2

28

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。

于 2012-11-05T07:00:47.973 回答
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

于 2012-11-05T02:15:18.253 回答