[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Проблема с русскими буквами /AJAX/
loginsan
Начал осваивать AJAX в связке с PHP по книге "Beginning AJAX with PHP--From Novice to Professional" Lee Babin. Естественно все примеры на английском. Попробовал реализовать самые простые примеры. Примеры работают (их немного пришлось локализовать..). Но вот что интересно - вывод данных, содержащих русские символы... Возникают проблемы с кодировкой. В мета-тегах прописываю кодировку windows-1251. Статичный русский текст - само-собой, а пропущенный через AJAX нет.
Может кто встречался с такой проблемой? Использую объект XMLHttpRequest.



Спустя 2 часа, 47 минут, 35 секунд (22.01.2007 - 16:25) vasa_c написал(а):
В браузерах внутри все в юникоде. Поэтому XMLHttpRequest должен получать данные тоже в юникоде. Так что придется на сервере перед отдачей конвертировать 1251->utf. Либо, что лучше, переходить полностью на utf.

Спустя 1 час, 11 минут, 25 секунд (22.01.2007 - 17:37) loginsan написал(а):
Спасибо что ответили! Правда результата добился гуглом и головой. Вот рецепт
>>
- в элементе отправляющем запрос конвертим в utf-8: onkeypress="turn(encodeURI(this.value))"
- отправка данных на серверный скрипт в функции turn: var serverPage = "script.php?text=" + text;
- в php-скрипте конвертим обратно в windows-1251: $text = iconv("UTF-8", "Windows-1251", $_GET['text']); обрабатываем $text
- результат обработки $reverse обратно переводим в utf-8: $reverse = iconv("Windows-1251", "UTF-8", $reverse);
- принимаемые данные переводим в windows-1251: obj.value = decodeURI(xmlhttp.responseText);
<<
Сам вижу что заковыристо, но более простые приемы не работали. Этот пашет хотя бы под IE и Firefox. Буду дальше разбираться.
Про полный utf-8... Надо подумать

Спустя 10 минут, 33 секунды (22.01.2007 - 17:47) loginsan написал(а):
А для Opera не надо выполнять пункт
- результат обработки $reverse обратно переводим в utf-8: $reverse = iconv("Windows-1251", "UTF-8", $reverse);
Теперь осталось распознать браузер Opera...


_____________
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.