不幸的是,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
表示空间)。