Консультация № 175939
08.01.2010, 23:17
35.00 руб.
0 11 1
Здравствуйте!
У меня проблема с кодировкой базы данных. Значит создаю базу в phpmyadmin с кодировкой "utf8 unicode_ci", сайт тоже в кодировке utf8. Вывожу данные из базы и мне выводит "�����������". Я уже пересоздавал базу в другой кодировке и все равно тоже самое выводит, уже не знаю, что делать. Что подскажите?

Обсуждение

Неизвестный
09.01.2010, 07:27
общий
А может все проще - на машине не установлен шрифт который указан на сайте?
С другого ПК пробовали?
Неизвестный
10.01.2010, 01:40
общий
Hottabych:
А при запросе к БД Вы явным образом кодировку указываете? Чтобы первой командой была SET NAMES "ваша_кодировка".
Неизвестный
10.01.2010, 15:26
общий
ALEX_SE
Там стоит шрифт Verdana.

lupus campestris
не сильно понял, я просто не спец по mysql
Неизвестный
10.01.2010, 16:35
общий
Hottabych:
Как у Вас сайт обращается к базе данных?
Неизвестный
10.01.2010, 16:49
общий
это прописано в index.php
Код:
<?php 
include ("blocks/bd.php"); /*Соединяемся с базой*/
$result = mysql_query("SELECT title,meta_d,meta_k,welcome_text FROM settings WHERE page='index'",$db);
$myrow = mysql_fetch_array($result);
?>


а сам файл bd.php:
Код:
<?
$db = mysql_connect ("localhost","здесь мой пользователь","здесь пароль");
mysql_select_db("здесь название базы",$db);
?>
Неизвестный
10.01.2010, 17:20
общий
Hottabych:
Отлично. Вот после соединения с БД добавьте эту строчку с выполнением запроса "SET NAMES ..."
Неизвестный
10.01.2010, 19:32
общий
где именно вписать и какой запрос?
Неизвестный
10.01.2010, 20:31
общий
Hottabych:
Я просто на php не пишу, попробуйте так:
mysql_query("SET NAMES utf8",$db);
Добавьте эту строчку в bd.php, после выбора БД.
Неизвестный
10.01.2010, 20:32
общий
спасибо большое, помогло.
Неизвестный
10.01.2010, 20:58
общий
Hottabych:
Пожалуйста :)
Неизвестный
12.01.2010, 18:49
общий
это ответ
Здравствуйте, Hottabych.
Кодировка задается в трех местах:
1) для базы данных;
2) для сайта;
3) для скрипта, который делает запросы к базе данных.
Раз у Вас для сайта и базы данных задана кодировка utf8, то и при запросе к базе данных нужно использовать эту кодировку. Не всегда кодировка по умолчанию является той, что нужна, поэтому существует SQL запрос, который позволяет выставить нужную кодировку: SET NAMES название_кодировки. Этот запрос нужно выполнить после подключения к базе данных, но перед запросом данных.
Для Вашего сайта нужно добавить эту строчку сразу после подключения к базе данных:
mysql_query("SET NAMES utf8",$db);
Удачи!
5
спасибо помогло
Форма ответа