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');