window.location.href или $ (location) .attr ('href') и польские диакритические знаки

0

У меня есть небольшая проблема с моим кодом. На моем сайте я получил поисковую систему с опцией фильтра. Условие поиска хранится в окне url, но фильтр в стандарте не принимает параметры поиска.

Я хочу исправить эту проблему.

Я написал простой JS-код ниже:

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

Так что если у меня есть URL-адрес, подобный этому http://mywww.pl/searchcond=&cond1[somePolishCharHere]&cond1

и я использую alert для отображения varible

alert(elementy[1]);

Я ожидаю увидеть 'cond1 [somePolishCharHere]', но у меня есть 'cond1 [someWirdStuffHere]'

Веб-сайт установил кодировку UTF-8, и для eq, если я сделаю что-то вроде этого:

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

Я получил правильный результат ([poslishCharHere])

И я понятия не имею, что не так...

Теги:
polish

1 ответ

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню