Есть скрипт, который берет данные из базы. Но возникла проблема с вопросительными знаками. Знаю, что этот вопрос задают все новички. Но в скрипте соблюдены все правила, и все равно вопросительные знаки. Что сделано, чтобы это исправить: 1. кодировка базы cp1251_general_ci 2. кодировка (сравнение) таблицы cp1251_general_ci 3. проверен контент таблицы: русские надписи читаются нормально, сортировка происходит логично, как нужно 4. скрипт сохранен в программе Notepad++ в кодировке ANSI 5. в скрипте отправляется заголовок header("Content-Type: text/html; charset=windows-1251 6. в скрипте указан тег <meta http-equiv="Content-Type" content="text/html;charset=windows-1251"> И все равно выводятся вопросительные знаки. Добавил строку mysql_query("SET NAMES 'cp1251'"); - стали выводится вообще пустые строки. Сейчас эту строку закоментил, вернулись вопросительные знаки. Код (Text): <?php header("Content-Type: text/html; charset=windows-1251"); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html;charset=windows-1251"> </head> <body> <?php //параметры подключения к базе $db_server='localhost'; $db_user='user'; $db_pas='test'; $db_name='dbname'; //подключаемся к базе и устанавливаем кодировку $db=mysql_connect($db_server, $db_user, $db_pas) or die ('сервер перегружен. обновите страницу'); $res=mysql_select_db($db_name) or die (); //mysql_query("SET NAMES 'cp1251'"); $query="select * from `post` where `id`=1"; $result=mysql_query($query, $db) or die(mysql_error()); $res=mysql_fetch_array($result); $name=htmlspecialchars($res['name']); echo $name; echo "</body></html>" ?>
Почему не в utf-8? mysql уже удалили, лучше mysqli или pdo используй. Очень старая версия HTML объявлена и ещё XHTML. Может написать в тех поддержку хостинга почему ты всё верно прописал, а данные всё равно порченные?