首页 文章

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

提问于
浏览
0

不幸的是,htmlentities,urlencode,htmlspecialchars - 似乎对我没什么用 . 我试图在URL中发送字符串“Music&Dance”作为GET参数,如下所示:

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

当我尝试接收 myvar 时,它始终显示"Music" . 这意味着,字符串在 & 字符处被截断 .

任何帮助将受到高度赞赏 .

2 回答

  • 0

    结果应为 ?myvar=Music%20%26%20Dance .

    检查您是否对值进行了url-encode,并对完整的URL进行html编码 . 后者需要制作有效的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>");
    
  • 1

    STD 66& 定义为reserved character . 它通常用于分隔名称 - 值对 .

    由于 & 是值的一部分,因此需要对其进行百分比编码→ %26 . 所以你的 Value 应该是 Music%20%26%20Dance%20 代表空间) .

相关问题