Mysql Проблема с кодировкой. Вместо русских букв кракозябры.

Inspire

Новичок
Всем привет. Перепробовал все способы уже. Но все равно вместо русских буквы выводится это äâà òðè.
Кодировка в бд - utf8, в конфиге апача прописал AddDefaultCharset utf8 (причем, изначально в httpd.conf не было этой строки вообще), в конфиге пхп добавил default-character-set= utf8, сама страница в utf8.
Код страницы
PHP:
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf8" />
</head>
<body>
<?php
// Соединяемся, выбираем базу данных
header( 'Content-Type: text/html; charset=utf8' );
$link = mysql_connect('localhost', 'root', 'root')
or die('Не удалось соединиться: ' . mysql_error());
echo 'Соединение успешно установлено';
mysql_query ("SET CHARACTER SET 'utf8'", $link);
mysql_query ("set character_set_client='utf8'");
mysql_query ("set character_set_results='utf8'");
mysql_query ("set collation_connection='utf8_general_ci'");
mysql_query ("SET NAMES utf8");
mysql_select_db('test_php') or die('Не удалось выбрать базу данных');

// Выполняем SQL-запрос
$query = 'SELECT * FROM clients';
$result = mysql_query($query) or die('Запрос не удался: ' . mysql_error());

// Выводим результаты в html
echo "<table>\n";
while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
echo "\t<tr>\n";
foreach ($line as $col_value) {
echo "\t\t<td>$col_value</td>\n";
}
echo "\t</tr>\n";
}
echo "</table>\n";

// Освобождаем память от результата
mysql_free_result($result);

// Закрываем соединение
mysql_close($link);
?>
</body>
</html>
Помогите плз, а то я уже не знаю, что еще делать. Спасибо
 
Последнее редактирование:

Inspire

Новичок
В общем проблема решена. Решение в том, что my.ini Надо было поставить кодировку сервера cp1251. И будет все ок. До этого пробовал latin1 и utf8. Только для меня не понятно. Почему надо ставить ему cp1251, когда работаю в utf8. Буду признателен за ответ.
 

С.

Продвинутый новичок
Даже если ты задал в базе кодировку utf8, но пишешь в нее русский в кодировке cp1251, то ты и будешь получать назад русский в cp1251.
 
  • Like
Реакции: WMix

AnrDaemon

Продвинутый новичок
В общем проблема решена. Решение в том, что my.ini Надо было поставить кодировку сервера cp1251. И будет все ок. До этого пробовал latin1 и utf8. Только для меня не понятно. Почему надо ставить ему cp1251, когда работаю в utf8. Буду признателен за ответ.
 
Сверху