[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Некоректно отображается выводимая из БД информация
antrofix
Здравствуйте, возникла проблема, текст выводимый из БД на страницу некорректно выводится, в виде вопросов, очень требуется помощь в вопросе
вот код со страницы с кодом
Код PHP

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd"
>
<
html>
<
head>
<
meta http-equiv="content-type" content="text/html; charset=windows-1251">
<
title></title>
</
head>
<
body>
<?
$db = mysql_connect('здесь указал сервер, 'здесь указал базу данных', 'пароль к базе данных');
mysql_select_db('
пользователь бд', $db);
$result=mysql_query('
select*from article',$db);
$row = mysql_fetch_array($result);
echo "<br>$row[all]";
?>
</body>
</html>


вот сама таблица

id 1
name С чего начать тренировки в домашних условиях
preview Думаю, что у любого человека заботящегося о своем ...
all Думаю, что у любого человека заботящегося о своем ...
link http://xn--80aa2a4a2a6am.xn--p1ai/files/article_pa...

кодировка базы данных cp1251_general_ci (Кириллическая нечувствительная к регистру)

вот ссылка на страницу, где прописан выше указанный код весь текст выводится вопросами

Вопрос такой: как сделать так, чтобы весь текст выводился корректно и русскими буквами?
ПС: если написал недостаточно инфы, то пишите добавлю то что необходимо



Спустя 9 минут, 31 секунда (27.03.2011 - 20:21) Trianon написал(а):
после mysql_select_db('пользователь бд', $db);
следует выполнить mysql_query('SET NAMES "cp1251");

кстати, имя БД и пользователя СУБД Вы перепутали.

Спустя 2 часа, 2 минуты, 22 секунды (27.03.2011 - 22:23) neadekvat написал(а):
Цитата (Trianon @ 27.03.2011 - 20:21)
следует выполнить mysql_query('SET NAMES "cp1251");

Тут вот советуют использовать
mysql_set_charset('UTF8');

Под рукой нет, но пруф в оф. документации php есть.

Спустя 35 минут, 36 секунд (27.03.2011 - 22:59) Trianon написал(а):
1. у автора 1251, судя по коду.

2. Да, советуют.
Но здесь стоит учесть штрафы и бонусы.
Штраф: функция mysql_set_charset() определена с версии php 5.2.3

Если бы эту функцию ввели хотя бы с версии php 5.0 , я бы и сам сейчас советовал.
И наверняка сам буду советовать ... где-нибудь через годик другой.

Бонус: корректное выполнение mysql_real_escape_string для (внимание!) для мультибайтовых кодировок, отличных от utf8...
То есть на практике - Chinese, Japanese, and Korean Character Sets.
При чем как я понимаю, именно в среде 5.3 и выше, то есть с mysqlnd в качестве клиентской библиотеки.
Потому как для любых однобайтовых кодировок, равно как и для utf-8, алгоритм работы mysql_real_escape_string одинаков, и совпадает с оным для mysql_escape_string().

PS. Меж тем mysql_real_escape_string определена с версии 4.3.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.