Доброго времени суток! Пишу небольшой скриптик, где значение берется с инпута и потом в скрипте используется... Код (Text): $q = $_POST['q']; если в инпут набираешь латинские буквы и цифры, то все окей, а русские буквы вообще не возвращаются... переменная $q становится пустой. как это лечится? ) P.S. charset=windows-1251
используется фрэймворк CodeIgniter довольно большой проект, где на UTF перейти не реально уже... поэтому в перед вызовом POST пишу: Код (Text): header('Content-type: text/html; charset=UTF-8'); криво, но все равно не работает (((
видел такое. отправляющая и принимающая стороны используют разные кодировки. надо привести их к одной кодировке: header('Content-type... <meta http-equiv="Content-Type"... и там и там должны быть одинаковые
блеаааать! что значит "перед вызовом POST" ? у тебя страница с помощью хидера сообщает браузеру в какой кодировке данные. "на лету" переключаться туда-сюда даже не пытайся )))) у тебя сайт 1251? значит все страницы должны быть такими. по симптомам у тебя страница откуда делается POST в utf-8, а принимающая в 1251. (или наоборот) понял?
))) да 1251, а header() я уже от безисходности поставил, где-то на форуме одному человеку посоветовали с аналогичной проблемой... разумеется в обоих случаях не помогло )) страница 1251, там java-script autocomplete, который отправляет в php запрос, вот там я и пытаюсь получить данные.. латиница и цифры удачно проходят, а кириллица нет.... вот код страницы: Код (Text): <script type="text/javascript"> $(document).ready(function() { $("#old_num").autocomplete('/v4/numberaccount/number_search/', { delay: 500, autoFill: false, max: 5, extraParams:{} }); }); ................ </script> .............. <form id="form1" action="/v4/numberaccount/change" method="POST" enctype="multipart/form-data"> <fieldset> <p>Введите номер счета: <input type="text" name="old_num" id="old_num" /> </p> </fieldset> </form> .................... вот код скрипта: Код (Text): .............. function number_search() { $q = $this->input->post('q'); $data = $this->db->query("SELECT nomer FROM accounts.main WHERE nomer like '%$q%' LIMIT 5;"); 5;"); foreach ($data->result() as $row) { print("{$row->nomer}\n"); } } // end of func ........... а кодировка указывается в параметрах фреймворка и больше негде... )
после теста, оказалось, что русские буквы он передает, но почему-то все в нижнем регистре... парадокс )) осталось узнать почему? )) но это уже не проблема, а так маленькое неудобство))
Silver Soft хидеры ставятся перед отсылкой для текущей новосоздаваемой страницы. переделай весь сайт в utf8 и живи счастливо.