【问题标题】:window.location.href or $(location).attr('href') and Polish diacriticswindow.location.href 或 $(location).attr('href') 和波兰语变音符号
【发布时间】:2013-09-26 11:51:59
【问题描述】:

我的代码有点问题。 在我的网站上,我有一个带有过滤选项的搜索引擎。 搜索条件保存在窗口 url 中, 但标准中的过滤器不采用搜索参数。

我想修复这个问题。

我在下面写了简单的JS代码:

var link = window.location.href;
var elementy = link.replace('+',' ').split('&');

所以如果我有这样的网址 http://mywww.pl/searchcond=&cond1[somePolishCharHere]&cond1

我使用 alert 来显示变量

alert(elementy[1]);

我希望看到“cond1[somePolishCharHere]”,但我看到了“cond1[someWirdStuffHere]”

网站已设置 UTF-8 编码,并且对于 e.q.如果我做这样的事情:

var test = [poslishCharHere];
alert(test);

我得到了正确的结果 ([poslishCharHere])

而且我不知道出了什么问题......

【问题讨论】:

  • 你应该显示奇怪的字符吗?不就是一些 URL 编码吗?

标签: javascript jquery polish


【解决方案1】:
var link = decodeURI( window.location.href );

例如

decodeURI("http://example.com/?foo=g%C4%99%C5%9B") === "http://example.com/?foo=gęś";

编辑:您在浏览器的 URL 栏中看到的内容并不总是有效 URI 的样子。 浏览器透明地处理它,因此用户可以看到可读的文本并输入任何字符,但有效 URI 中的字符集非常有限(数字、字母和一些符号),其他所有内容都需要使用“百分比编码”进行编码. https://www.rfc-editor.org/rfc/rfc3986#section-2

【讨论】:

    猜你喜欢
    • 2011-04-03
    • 2019-03-01
    • 2016-12-09
    • 2011-03-31
    • 2013-10-10
    • 2017-04-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多