URL特殊字符作为GET方法问题



不幸的是,htmlentities,urlencode,htmlspecialchars-似乎什么都不适合我。我正试图将URL中的字符串"音乐与舞蹈"作为GET参数发送,如下所示:

http://www.example.com?myvar=str.....

当我尝试接收myvar时,它总是显示"音乐"。这意味着,字符串在&字符处被截断。

如有任何帮助,我们将不胜感激。

结果应该是?myvar=Music%20%26%20Dance

检查您是否都对值进行了url编码,以及html是否对完整的url进行了编码。后者需要生成有效的html。

示例:

var value1 = "Music & Dance";
var value2 = "Awesomeness";
var qs = "?myvar=" + urlencode(value1) + "&level=" + urlencode(value2);
// Result: "?myvar=Music%20%26%20Dance&level=Awesomeness"
var href = htmlencode(qs);
// Result: "?myvar=Music%20%26%20Dance&level=Awesomeness";
write("<a href="" + href + "">my link!</a>");

STD 66将&定义为保留字符。它通常用于分隔名称值对。

由于&是值的一部分,因此需要对其进行百分比编码→%26。因此,您的值应该是Music%20%26%20Dance%20表示空间)。

最新更新