2013-09-26 74 views
0

我的代碼有點問題。 在我的網站上,我找到了一個帶過濾器選項的搜索引擎。 搜索條件保存在窗口url中, 但標準中的過濾器不接受搜索參數。

我想修復這個問題。

我寫了下面簡單的JS代碼:

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

所以,如果我有網址這樣http://mywww.pl/searchcond= & COND1 [somePolishCharHere] & COND1

我用警報顯示varible

alert(elementy[1]); 

我希望看到 'COND1 [somePolishCharHere]',但我得到了 'COND1 [someWirdStuffHere]'

網站已設置UTF-8編碼,併爲e.q.如果我做這樣的事情:

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

我得到正確的結果([poslishCharHere])

而且我不知道什麼是錯的...

+0

你應該顯示怪異的字符?它不只是一些URL編碼? –

回答

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