Привет!
Использую ajax для организации живого поиска.
Из формы передаю русский текст, а в скрипт на php приходит ерунда. И из этого следует что поиск не отрабатывает.
Подскажите как исправить ситуацию.
Здравствуйте, pretorian, Вы писали:
P>Привет! P>Использую ajax для организации живого поиска. P>Из формы передаю русский текст, а в скрипт на php приходит ерунда. И из этого следует что поиск не отрабатывает. P>Подскажите как исправить ситуацию.
P>Заранее спасибо.
ежели у тебя xmlhttprequest:
RESPONSE.setHeader('Content-Type', 'text/html; charset=windows-1251')
а еще можно юзать Subsys_JsHttpRequest, тогда:
$JsHttpRequest =& new Subsys_JsHttpRequest_Php("windows-1251");
Здравствуйте, pretorian, Вы писали:
P>Привет! P>Использую ajax для организации живого поиска. P>Из формы передаю русский текст, а в скрипт на php приходит ерунда. И из этого следует что поиск не отрабатывает. P>Подскажите как исправить ситуацию.
browser ?
траффик между клиетном и сервером — запрос на описк и ответ какие ?
Здравствуйте, pretorian, Вы писали:
P>Здравствуйте, Arioch2, Вы писали:
A>>browser ? P>Opera 8.5.1 A>>траффик между клиетном и сервером — запрос на описк и ответ какие ?
^^^^^^^^^^^^^^
Ставь Proxomitron, включай Byрass, Опере ставь его как проксю, открывай Log window — и смотри что отправляется и что возвращается.
Выяснять в первую очередь надо что происходит — тогда понятнее будет что делать, а не шаманить
A>>какого рода ерунда ?
P>На вводе русские буквы, в скрипт на php (в условия запроса) приходят крякозяблы.
Они разные бывают. Иногда по виду кракозябр можно сказать, какие преобразования кодировок прошли.
Здравствуйте, pretorian, Вы писали:
P>Здравствуйте, Kron0S, Вы писали:
KS>>ежели у тебя xmlhttprequest: KS>>RESPONSE.setHeader('Content-Type', 'text/html; charset=windows-1251')
P>Не работает в таком.варианте. Вообще перестало выводиться что-либо на экран. P>Ещё есть варианты?
A>Ставь Proxomitron, включай Byрass, Опере ставь его как проксю, открывай Log window — и смотри что отправляется и что возвращается.
Как это сделать? Вот запустил ты Proxomitron, в опере открыл настройки-сеть, там поле: HTTP: <поля для ввода(ip/хоста подоздеваю)> Порт: <поле>
Что вводить, как настраивать сам Proxomitron?
Здравствуйте, pretorian, Вы писали:
P>Привет! P>Использую ajax для организации живого поиска. P>Из формы передаю русский текст, а в скрипт на php приходит ерунда. И из этого следует что поиск не отрабатывает. P>Подскажите как исправить ситуацию.
P>Заранее спасибо.
Волшебное слово — юникод.
Отправляться у тебя должно все прекрасно и в PHP приходить все правильно. (Правда, были у меня проблемы с оперой 8-кой, но не помню в чем была суть). Но вот обратно, из PHP, текст должен возвращаться в юникоде. Ты там, в PHP, сложи все, что к выводу готово в переменную, а потом прогони через функцию типа:
function ru2uni($isoline) {
$uniline="";
for ($i=0; $i < strlen($isoline); $i++){
$thischar=substr($isoline,$i,1);
$charcode=ord($thischar);
if ($charcode==168) {
$uniline.="&#".(26*32+57+($charcode)).";";
} elseif ($charcode==184) {
$uniline.="&#".(26*32+89+($charcode)).";";
} elseif (($charcode>=192) and ($charcode<=255)) {
$uniline.="&#".(26*32+16+($charcode)).";";
} else {
$uniline.=$thischar;
}
}
return $uniline;
}
Тут можно небольшим регулярным выражением все описать, но лень сейчас писать, нашел вот готовый код, пользуйся.
Здравствуйте, Alfred361, Вы писали:
A>Здравствуйте, pretorian, Вы писали:
P>>Привет! P>>Использую ajax для организации живого поиска. P>>Из формы передаю русский текст, а в скрипт на php приходит ерунда. И из этого следует что поиск не отрабатывает. P>>Подскажите как исправить ситуацию.
P>>Заранее спасибо.
A>Волшебное слово — юникод. A>Отправляться у тебя должно все прекрасно и в PHP приходить все правильно. (Правда, были у меня проблемы с оперой 8-кой, но не помню в чем была суть). Но вот обратно, из PHP, текст должен возвращаться в юникоде.
Так у меня выводиться нормально русский текст. Проблема осталась. При вводе русской буквы в php приходит ерунда. Вывел в браузер строку запроса в базу. Там введённый символ в виде ерунды. Изменил кодировку страницы в браузере на utf-8 и запрос отобразился в правильном виде и с русской буквой.
Здравствуйте, pretorian, Вы писали:
P>Привет! P>Использую ajax для организации живого поиска. P>Из формы передаю русский текст, а в скрипт на php приходит ерунда. И из этого следует что поиск не отрабатывает. P>Подскажите как исправить ситуацию.
P>Заранее спасибо.
Была у меня проблема, когда я пользовался сторонней библиотекой.
При вводе русских букв в пхп приходило что-то странное.
Решилось все заменой js ф-ии, которой упаковывался ввод. По-моему поменял на escape.
Попробуй использовать эту библиотеку: sajax
Других проблем с ней не было.