AJAX и русские буквы - проблема с кодировкой

При использовании AJAX, особенно совместно с MySQL, могут возникнуть проблемы с передачей русских букв между скриптами независимо от метода (GET или POST). Решением является:

явное указание кодировки
На клиентской части это

<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />


, на серверной (php) -

header("Content-type: text/html; charset=windows-1251");


ручная перекодировка
при отправке из javascript применять функцию encodeURIComponent, которая кодирует в Unicode

req.send('param='+encodeURIComponent('привет мир'));


в серверной части приводим к нужной кодировке с помощью iconv

iconv("UTF-8", "WINDOWS-1251", $param);


Также часто проблемы с кодировкой могут возникать из-за неверных настроек MySQL. В этом случае необходимо внести коррективы в файл my.cnf/my.ini (в зависимости от версии). В разделе mysqld должны быть строки:

default-character-set = cp1251
init-connect="SET NAMES cp1251"
skip-character-set-client-handshake=1


Последний параметр заставляет сервер игнорировать кодироку, посылаемую клиентом, и использовать указанную в настройках сервера.
Теги:
AJAX, русские буквы, кодировки
Добавлено: 02 Марта 2015 19:49:38 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...