AJAX и кириллица - неполадки с кодировкой

 

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

Но существует их решение:


1. открытое указание кодировки

На клиентской части это:

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

На серверной (php):

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

 

2. ручная перекодировка

При отправке из 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

С помощью последнего параметра сервер игнорирует кодировку, которую посылает клиент, и использует вместо нее кодировку указанную в настройках сервера.





В разделе "Оформления заказа" вы сможете оставить заявку на выполнение работ.

В разделе "Портфолио" вы сможете просмотреть, оценить и прокоментировать наши работы.

Портфолио
Портфолио
Наши клиенты
Ваши отзывы заставляют нас совершенствоваться, мы стараемся быть ближе к нашим клиентам, даже если нас разделяют тысячи километров.
Быстрые ссылки
 
©Init-Studio.ru, INIT-CMS © init-studio, 2008-2012.
Копирование материалов разрешено только с указанием ссылки на источник