Здравствуйте, очередная проблема с кодировкой. База данных - MySQL; Кодировка (по идее) - cp1251; Вместо текста который выводится из БД - Каракули (На кириллице). Причем каждый раз они разные (а иногда выводится и нормально, но очень редко). В системных переменных MySQL кроме character set ничего насчет кодировки нет. На SET NAMES cp1251 выводит ошибку, что такой переменной нет. Делаю set character set = cp1251_koi8 - толку 0. Я уже второй день никак не могу с этим разобратся, подскажите, в чем может быть причина?
Код (Text): header('Content-Type: text/html; charset=windows-1251'); + Код (Text): mysql_query("SET NAMES cp1251");
если данные были в несены в базу в одной кодировке, то в другой не удасться, скоко не меняй значение. т.е. if( "кодировка данных" == "кодировка выставленная тобой" == "кодировка сайта" ) echo "счастье!" else die();
Я решил эту проблему так, в файл который соединяется с базой добавил это <?php $dbhost = "localhost"; $dbname = "baza"; $dbuser = "root"; $dbpass = ""; $link = mysql_connect($dbhost,$dbuser,$dbpass) or die(mysql_error()); mysql_query ("SET CHARACTER SET 'cp1251'", $link); mysql_query ("set character_set_client='cp1251'"); mysql_query ("set character_set_results='cp1251'"); mysql_query ("set collation_connection='cp1251_general_ci'"); mysql_query ("SET NAMES cp1251"); mysql_select_db($dbname,$link) or die("Could not find db"); if (!headers_sent()) { session_start(); }; ?>