Вы читаете “ Ajax и кодировка запросов”, в блоге Оптимизация сайтов от cross{blog}
- Опубликовано:
- 11.23.07 / 10пп
- Рубрика:
- Разработка сайтов
Реклама
Полезные ссылки
Ajax и кодировка запросов
Буржуй ваш - таблетки наши. Конверт просто улётный! GlavMed.com
Неотъемлемая часть Web2.0 проекта использование интерактивного интерфейса, реализацию который приобрел лице Ajax. Я уже немного касался этой темы и сейчас, когда вплотную поставил себя в условия изучения этой технологии обнаружил, что как и любая технология она имеет свои подвохи.
AJAX (от англ. Asynchronous JavaScript and XML — «асинхронный JavaScript и XML») — это подход к построению интерактивных пользовательских интерфейсов веб-приложений, заключающийся в «фоновом» обмене данными браузера с веб-сервером. В результате при обновлении данных веб-страница не перезагружается полностью, и веб-приложения могут быть сделаны более быстрыми и удобными.

Описывать основы работы Ajax с PHP я не стану, поскольку об этом есть много статей и общеступной информации. Все и так могут скачать Ajax скрипты и изучить работу основного компонета XMLHttpRequest.
Сейчас же хочется в качестве полезной заметки описать решение, которое я использовал для борьбы с неправильной кодировкой запроса, в частности при посылке его пользователем через браузер Opera. Ситуация такова:
- Браузер IE, заполняется форма, через Ajax отправляется в скрипт PHP, где происходит insert в базу. В результате в базе текст в номальной кодировке.
- Браузер IE, теми же данными заполняется форма, через Ajax отправляется в скрипт PHP, где происходит insert в базу. В результате в базе текст в непонятной кодировке.
Первое, что приходит на ум, проверить кодировку. Недолго серфя по инету находим функцию mb_detect_encoding, но и с ее помощью кодировку не получается определить нормально. В итоге находится функция mb_convert_encoding, которая умеет перекодировать текстовые данные и получаю немного подогнав ответ:
$encoded_data=mb_convert_encoding($_GET['data'],'Windows-1251','UTF-8');
$data=(mb_detect_encoding($_GET['data'],"auto",true)=='')?$_GET['data']:$encoded_data;
$data=trim(strtolower($data));
Только подобные преобразования get запроса от javascript в исполняемом PHP файлике помогают справиться с неправльной кодировкой для обоих браузеров и русский текст инсертится в базу с любой кодировкой... Разбираюсь дальше, а пока.
Maxsite тоже борется с кодировкой
ну надо же. Притяжение, чтоли опять, или я просто фрик-идеями себе забиваю голову? А вто Zpro до сих пор еще не осознал, что осень - это пора депрессий, а значит даже малейшее несоотвествие реальности своим идеям и желаниям приводит к негативным мыслям или их отсутствию. Осознание проблемы ~ это решение проблемы.
Вот такие javascript штуки мне не очень понятны, но надеюсь скоро освою все в полной мере.
Форум вебмастеров
Ajax и кодировка запросов
Комментарии (8)Оставить комментарий | |