Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > Кодировки, mysql и jquery


Автор: Apelsin 9.10.2010, 23:08
Следующая проблема возникла...
На странице выполняю код, передавая в res параметры запроса:
Код

$.get("../test/test.php?"+res, function(data){
$('<span></span>').replaceAll('#what_found').html(data);
});


в test.php идет обращение к БД. Результатом выполнения этого (без стилей):

Код

<?echo "Результат: ".$a[3];?> 


является вот что:
user posted image

в $a[3] - русские символы. Как лечить, мужики?smile

Автор: Egik2 10.10.2010, 00:46
А что такое $a3 -значение этой переменной берется из бд?
Проверь кодировку исходной страницы, откуда посылается запрос и результата, то есть test.php.

Автор: Apelsin 10.10.2010, 12:32
Egik2, преобразовал кодировку test.php в ANSI и все стало работать. Но в Опере проблемы с кодировкой остались.
($a[3] - да, берется из БД)
Может кому пригодится:
чтобы Опера нормально обрабатывала запрос и ответ (да и не только Опера), запрос с русскими буквами необходимо кодировать командой:
Код

encodeURIComponent(request)


а в файле который обрабатывает запрос (у меня это test.php в ANSI) выполнять:
Код

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

и только после этого пользовать $request для вывода или запросов к БД.

Автор: bars80080 10.10.2010, 13:06
вообще, эти проблемы с кодировкой cp1251 всегда будут преследовать любое приложение аякса.
как только полностью переводишь сайт на utf-8, проблемы исчезают

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)