Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > 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
Цитата(ksnk @ 9.7.2016,  23:13)
а phpmyadmin правильно показывает данные в таблице?

Да, в том то и дело.
В 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

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