Проблема кодировки с баз данных
О проблемах с кодировкой при чтении данных с баз данных написано очень много. Только за последние 4 часа я прочитал не один десяток статей.
Но у меня все равно возникает несколько вопросов.
Исходник:
1) файл index.php
2) файл text.php
3) кодировка в базе данных задана utf8
4) кодировка на странице index.php задана utf-8
5) в файле text.php кодировка не стоит, только после запроса к БД
Файл index.php выводит include в одном месте файла text.php
Код файла index.php:
Код:
<?php
header('Content-Type: text/html; charset=utf-8');
?>
<!DOCtype html5>
<html><head><title>uuuuuuu </title></head><body>
<?
include 'text.php';
?>
</body>
</html>
Код файла text.php:
Код:
<?php
session_start();
if ($_SESSION["Login"] == "YES") {
$baza_daniz = mysql_connect(------------- or die(mysql_error());
mysql_select_db('-----z');
mysql_set_charset('utf8');
$otsop='SELECT * FROM -----ORDER BY id';
$sorti=mysql_query($otsop);
while ($pasorti = mysql_fetch_array($sorti)) {
echo "$pasorti['Phone']";
}
mysql_close($baza_daniz);
} else {
echo 'закрыto;-)';
}
?>
Вопросы:
1. Почему если я удаляю mysql_set_charset('utf8');, то в index.php показываются крякозябры, если БД имеет кодировку utf?
2. Если в файле index.php прописана кодировка (для отображения конечному пользователю) и данные с таблицы норм отображаются, а сам файл text.php имеет только после запроса с БД кодировку - почему крякозябры если открывать напрямую страницу text.php? Из-за того, что тексту (браузеру) не задана кодировка? Как тогда поступать, ведь при инклуде кодировка будет повторяться.?