| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Базы Данных > Скрипт выводить из базы вопросительные знаки |
| Автор: begin 9.7.2016, 00:06 |
| Есть скрипт, который берет данные из базы. Но возникла проблема с вопросительными знаками. Знаю, что этот вопрос задают все новички. Но в скрипте соблюдены все правила, и все равно вопросительные знаки. Что сделано, чтобы это исправить: 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'"); - стали выводится вообще пустые строки. Сейчас эту строку закоментил, вернулись вопросительные знаки. <?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>" ?> |
| Автор: ksnk 9.7.2016, 23:13 |
| а phpmyadmin правильно показывает данные в таблице? |
| Автор: begin 10.7.2016, 20:26 | ||
Да, в том то и дело. В phpmyadmin и русские надписи читаются нормально и сортировка происходит логично, как нужно. И скачивал бекап - тоже все ок, и кодировка файла ANSI. |
| Автор: Angel_666 12.7.2016, 02:10 |
| https://habrahabr.ru/post/10983/ Этот ответ добавлен с нового Винграда - http://ru.vingrad.com/Skript-vyvodit-iz-bazy-voprositelnyye-znaki-id5780166fae201501158b4567#findElement_E7045_57842756ae2015a0517c7daa_0 |