Мой проект основан на CodeIgniter, но я думаю, этот вопрос совсем не об этом.
Во-первых, я включил строки запроса и функцию поиска. Строка поиска передается в переменную searchterm, и когда я передаю ее через форму, она работает нормально и выглядит так:
http: // локальный / домашний / поиск /? 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 () из того, что я искал в Google, но они также не работали.
Возникает вопрос, почему все остальные браузеры, кроме 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 все работает нормально! Возможно, это потому, что по умолчанию этот браузер не кодирует кириллические символы неправильно, как другие браузеры.