Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么<;a>;标记是否用%2520替换空格?如何解决这个问题?_Javascript_Html_Url - Fatal编程技术网

Javascript 为什么<;a>;标记是否用%2520替换空格?如何解决这个问题?

Javascript 为什么<;a>;标记是否用%2520替换空格?如何解决这个问题?,javascript,html,url,Javascript,Html,Url,在这种情况下,我认为将问题解释为场景是最好的解释方式 我在一个名为a.html的页面中有一个搜索框,传递到此页面的参数应替换为其搜索框的值。问题是,当我传递参数时,空格被替换为%2520,因此搜索框中会添加错误的值。我需要解决它 以下地址将放入地址栏:www.example.com/a.html?value=此处%2520和%2520此处 此值将替换为搜索框的值:此处%2520和%2520此处。我需要在我的搜索框中有这个值“这里和那里”。(无%2520) 如前所述,将此数据用作URL需要对空格

在这种情况下,我认为将问题解释为场景是最好的解释方式

我在一个名为
a.html
的页面中有一个搜索框,传递到此页面的参数应替换为其搜索框的值。问题是,当我传递参数时,空格被替换为
%2520
,因此搜索框中会添加错误的值。我需要解决它

  • 以下地址将放入地址栏:
    www.example.com/a.html?value=此处%2520和%2520此处

  • 此值将替换为搜索框的值:
    此处%2520和%2520此处
    。我需要在我的搜索框中有这个值
    “这里和那里”
    。(无
    %2520


  • 如前所述,将此数据用作URL需要对空格和其他非ascii字符进行URL编码。否则,浏览器将无法正确解析URI


    您可以在不编码原始数据的情况下进行更改以请求原始数据(保持空格完整),但如果要附加到URL,则这将毫无用处。如果没有,请随意粘贴与您试图对数据执行的任何操作相关的代码

    如前所述,将此数据用作URL需要对空格和其他非ascii字符进行URL编码。否则,浏览器将无法正确解析URI


    您可以在不编码原始数据的情况下进行更改以请求原始数据(保持空格完整),但如果要附加到URL,则这将毫无用处。如果没有,请随意粘贴与您试图对数据执行的任何操作相关的代码

    这里发生的事情似乎是URL被双重编码(见下文);虽然我无法解释发生这种情况的确切原因,但可能是因为您的URL未正确编码:

    <a href="www.example.com/a.html?value=Here and there">Link</a>
    
    更新 我无法解释双重编码的原因是,问题是如何将传递的值添加到搜索框中。最可能的情况是搜索框中填充了百分比编码值。要解决这个问题,您必须首先解码该值,即

    searchBox.value = decodeURIComponent('Here%20and%20there');
    

    另请参见:

    这里发生的事情似乎是URL被双重编码(见下文);虽然我无法解释发生这种情况的确切原因,但可能是因为您的URL未正确编码:

    <a href="www.example.com/a.html?value=Here and there">Link</a>
    
    更新 我无法解释双重编码的原因是,问题是如何将传递的值添加到搜索框中。最可能的情况是搜索框中填充了百分比编码值。要解决这个问题,您必须首先解码该值,即

    searchBox.value = decodeURIComponent('Here%20and%20there');
    

    另请参见:

    ,因为这是一个正确编码的url。url中不能有空格,因为它是正确编码的url。一个空间中不能有空格url@Jack我在你的问题中没有看到任何搜索框;也许你可以帮我澄清一下?我在问题中解释过,无论“value”参数的值是什么,都会被放入页面的搜索框中。因此,如果我用“Here+and+there”传递地址,那么seasrch框的值也会变成“Here+and+there”,这是我不想要的。@Jack让我重新表述一下;你是如何将值传递到搜索框的?@Jack我在你的问题中没有看到任何搜索框;也许你可以帮我澄清一下?我在问题中解释过,无论“value”参数的值是什么,都会被放入页面的搜索框中。因此,如果我用“Here+and+there”传递地址,那么seasrch框的值也会变成“Here+and+there”,这是我不想要的。@Jack让我重新表述一下;如何将值传递到搜索框中?
    searchBox.value = decodeURIComponent('Here%20and%20there');