Мой проект основан на CodeIgniter, но я думаю, что этот вопрос вообще не о нем.
Во-первых, я включил строки запроса и функцию поиска. Строка поиска передается в переменную searchterm, и когда я передаю ее через форму, она отлично работает и выглядит следующим образом:
http: // local / home / search /? Searchterm = testtesttest
Хорошо, теперь, когда я ввожу некоторую кириллическую строку в форму поиска, она также работает нормально, например, URI будет:
http: // local / home / search /? Searchterm = привет (в chrome) или
http: // local / home / search /? searchterm = (в IE, Opera и т. д.)
Два вышеприведенных случая работают нормально, НО, когда я ввожу строку поиска CYRILLIC непосредственно из адресной строки (например, в Opera или IE), он не хочет ничего искать. $ _GET [‘searchterm’] пуст, а что касается QUERY_STRING, это что-то вроде searchterm = (все данные из профилировщика).
Я кодирую свою строку из контроллера, но она как-то не работает. Я также попробовал некоторые случаи iconv () из того, что я гуглил, но они также не работали.
Итак, вопрос в том, почему все другие браузеры, кроме chrome, не получают переменную CYRILLIC $ _GET из адресной строки, если она была введена оттуда? Проходя через форму все работает нормально.
Заранее спасибо, ребята. Надеюсь на вашу помощь.
P.S.
Я также нашел:
% D0% BD% D0% BE% D1% 87% D0% B0% D0% BB% D0% BE * * тысяча двадцать-один
- это передается из формы, accept-charset установлен в UTF-8. В этом случае, как я уже сказал, все работает отлично. И:
% ED% E0% F7% E0% EB% EE
- это появляется в адресной строке при наборе строки прямо внутри адресной строки. Так что я думаю, что каждый браузер превращает мои кириллические символы в нечто странное ... Я не знаю: (
Не забывайте, что с Chrome все работает отлично! Возможно, это связано с тем, что по умолчанию этот браузер не кодирует символы кириллицы неправильно, как другие браузеры.