Здравствуйте, никак не могу понять что делать! У меня в странице есть блок div, в начале (при загрузке страницы index.php) я туда вписываю текст средствами php вот код PHP: <?php $rez=mysql_query("SELECT txt FROM rek",$db); $myrrow=mysql_fetch_array($rez); $i=1; do { $txt[$i]=$myrrow['txt']; $i++; } while($myrrow=mysql_fetch_array($rez)); $x = rand(1,$i); if($txt[$x]!="") { echo $txt[$x]; } ?> Потом средствами Ajax я периодически меняю текст в этом блоке, делая запрос уже к отдельному скрипту вот код того скрипта rek.php PHP: <?php include("../connect.php"); mysql_query("SET NAMES 'cp1251'", $db); $rez=mysql_query("SELECT txt FROM rek",$db); $myrrow=mysql_fetch_array($rez); $i=0; do { $txt[$i]=$myrrow['txt']; $i++; } while($myrrow=mysql_fetch_array($rez)); $x = rand(0,$i); if($txt[$x]!="") { echo $txt[$x]; } ?> отдельно что бы было легче вызывать для ajax вот код [js] setInterval(function(){ var zap = $.get('ajax/rek.php',function(ccc){ if(ccc!="") { $('#rek').text(ccc); } }); },5000); [/js] Проблема заключается в том что когда текст подгружается средствами Ajax вместо русских символов отображаются вопросительные знаки!!!! Раньше делал на денвере, все работало нормально!!!!! Потом перенес на другой сервер php-5.3.8 mysql-5.5.18 вот эта проблема началась! Может кто подскажет что мне делать? Где кодировку указать? Заранее спасибо!!!!!!!!!!
используйте iconv() для вывода результатов в rek.php и перекодируйте из utf-8 в кодировку, используемую у вас на странице.
мне не "в" нужно, а "из" сейчас посмотрю в нете что это такое!!!!! Вот на время открываю свой сайт для наглядности http://95.78.222.206/
попробуйте так - rek.php Код (Text): <?php include("../connect.php"); mysql_query("SET NAMES 'cp1251'", $db); $rez=mysql_query("SELECT txt FROM rek",$db); $myrrow=mysql_fetch_array($rez); $i=0; do { $txt[$i]=$myrrow['txt']; $i++; } while($myrrow=mysql_fetch_array($rez)); $x = rand(0,$i); if($txt[$x]!="") { $to_print = iconv('utf-8','cp1251',$txt[$x]); echo $to_print; } ?>
ajax работает в utf-8 кодировке. всё что попадает в него, должно быть в ней или к ней приводится и при возвращении результата тоже самое должно приводится к виду кодировки, используемой на странице вывода.
Что то теперь вообще отказал в работе, текст на странице не подгружается..... А можно как нибудь указать кодировку в самом скрипте? [js] setInterval(function(){ var zap = $.get('ajax/rek.php',function(ccc){ if(ccc!="") { $('#rek').text(ccc); } }); },5000); [/js]
Хах всем спасибо, но я кажется сделал!!!!!!!!!!! не понимаю по какому принципу, но это работает!!! Я просто в rek.php принудительно указал кодировку юникод вместо кирилицы mysql_query("SET NAMES 'utf8'", $db); и вооля у меня работает))) PHP: <?php include("../connect.php"); mysql_query("SET NAMES 'utf8'", $db); $rez=mysql_query("SELECT txt FROM rek",$db); $myrrow=mysql_fetch_array($rez); $i=0; do { $txt[$i]=$myrrow['txt']; $i++; } while($myrrow=mysql_fetch_array($rez)); $x = rand(0,$i); if($txt[$x]!="") { echo $txt[$x]; } ?>