window.location.href或$(location).attr('href')和波兰变音符号

时间:2013-09-26 11:51:59

标签: javascript jquery polish

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

我想修复这个问题。

我在下面编写了简单的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])

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

1 个答案:

答案 0 :(得分:2)

var link = decodeURI( window.location.href );

例如

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

编辑:您在浏览器的URL栏中看到的内容并不总是有效的URI应该是什么样子。 浏览器透明地处理它,以便用户可以看到可读文本并键入任何字符,但有效URI中的字符集非常有限(数字,字母和几个符号),其他所有内容都需要使用“百分比编码”进行编码。 http://tools.ietf.org/html/rfc3986#section-2