【问题标题】:Remove Special Character from google chrome URL从谷歌浏览器 URL 中删除特殊字符
【发布时间】:2014-08-13 10:09:41
【问题描述】:

尝试在 url 下运行:

http://seaway.fulba.com

search word :- Hello Hi 

Chrome 添加特殊字符 %20 而不是空格,我想在 url 中保持原样 (Hello Hi) 在那里搜索的内容。

我正在使用 html5 pushstate 函数传递 url。请帮我解决这个问题。

【问题讨论】:

  • 网址中的空格无效。任何显示空格的浏览器都只是在后台将它们编码为 %20。在您的代码中,您将反转此编码
  • @amit ,地址栏不能设置空间为" "。在您的 javascript 中使用 decodeURI 函数。问题解决了。

标签: php jquery google-chrome


【解决方案1】:

向您展示您的代码或尝试urldecode()

$url=urldecode($yoururl);
echo $url;

当在 pushstate 中传递您的搜索字符串时,请使用 window.unescapedecodeURI()

【讨论】:

  • 好。但他在html5 pushstate中使用。所以,把javascript给他。投票给decodeURI()
  • @amit 告诉我你的搜索按钮点击代码会改变你的 url(pushstate)
  • 您需要在document.ready() 中使用decodeURI,比如$('#gsc-i-id1').val(decodeURI(param));,目前它在FF 中也不起作用。
  • 函数 search_load() { $( ".custom" ).remove(); //$("#custom").html(""); searchme=$("#gsc-i-id1").val(); if ($('#showImages').is(":checked")) { showImages=$("#showImages").val(); } 其他{ showImages="no"; } ajax 函数 $(".banner").show(); if(searchme!=window.location){ window.history.pushState({path:searchme},'',"/?r="+searchme); } 返回假; }
  • 在我 pushstate url 之前它是警报好的,就像你好,但是在推送 url 之后它在那里添加了特殊字符
【解决方案2】:

这是不可能的,因为空格是 URL/I 中的无效字符。

space 字符 20ASCII 十六进制代码,因此您可以看到编码空间为 %20,编码的 '%27

要在 javascript 中重用它,您应该使用:

var str = decodeURI(URL_STRING);

你的情况是:

var urlRValue = window.location.search.split('=')[1];
// "Hello%20Hi"
var str = decodeURI(urlRValue);
// "Hello Hi"

【讨论】:

  • 你能详细说明一下吗?我到底想要什么?因为它在 mozila 中运行良好
  • 对不起,我不同意,如果你看一下 Firefox 中window.location.search.split('=')[1] 的值,它也会显示“Hello%20hi”。或者另一个测试:复制 url 并将其粘贴到记事本(或任何纯文本编辑器)中,您将看到 %20。 Firefox 在内部转换 %20 并且只显示它为 ` `(空格)字符。但是,如果您通过js 访问它,您将始终得到%20
  • 所以上面的功能可以实现我的目标,即保持 chrome 中的空间?
  • 再次:url 中没有空格,只有%20-s。 Firefox 做了一些魔术来显示 ` `(空格)。decodeURI 将编码的 url 转换为普通字符串 decodeURI('%20') 产生 " "。阅读更多信息:decodeURIdecodeURIComponentdifferences between them。也许这会对你有所帮助
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-06
  • 1970-01-01
  • 2019-05-09
  • 1970-01-01
  • 2012-11-13
  • 1970-01-01
相关资源
最近更新 更多