В phpmyadmin русские буквы отражаются корректно. При экспорте в файл русские буквы отражаются корректно.
При отражении скриптом http://*****.100ms.ru/****1.php - некорректно.
В скрипте присутствует строка: echo '<meta http-equiv="Content-Type" content="text/html; charset=utf-8">';
Что еще нужно настроить?
Для новичков, сразу рабочий пример:
<?php $sdd_db_host='';// ваш адрес где находится, хостится ваша база данных $sdd_db_name='';// Имя базы данных с которой вы хотите работать, так как их может быть множество $sdd_db_user='';// логин доступ к базе данных $sdd_db_pass='';// пароль доступа к базе данных @mysql_connect($sdd_db_host,$sdd_db_user,$sdd_db_pass);// устанавливаем связь с сервером @mysql_select_db($sdd_db_name);// переключаемся на нужную нам базу данных $result=mysql_query('SELECT * FROM `table_name`');// делаем выборку из таблицы while($row=mysql_fetch_array($result))// берем результаты из каждой строки { echo '<p>Запись id='.$row['id'].'. Текст: '.$row['text'].'</p>';// выводим данные } ?>
Теперь подробнее:
Создаём простую таблицу в нашей базе данных (БД) с именем `table_name`. Вот он скрипт, который легко выполняется в phpmyadmin, для этого достаточно всего лишь скопировать текст и нажать кнопку выполнить:
CREATE TABLE `u220100_5000`.`table_name` ( `id` INT NULL AUTO_INCREMENT COMMENT 'ID номер записи', `text_` VARCHAR(500) NULL COMMENT 'Текстовое поле', PRIMARY KEY (`id`) ) ENGINE = MYISAM CHARACTER SET utf8 COLLATE utf8_general_ci COMMENT='Экспериментальная таблица';
Несколько важных замечаний:
* возьмите в привычку сразу заполнять комментарии к полям, это позволит вам выработать привычку комментирования и впоследствии не будет проблем при разработке больших и динамических полей, так как я сомневаюсь в том, что в вы наизусть будете помнить 10 тысяч полей и для чего и на кой каждое поле нужно;
* забудьте про все ранее существующие кодировки и работайте только в UTF. Преимущества UTF кодировки перед остальными очевидны.
* все поля пишите либо только маленькими, либо только большими буквами. К сожалению PHP придирчив к регистру и в случае, если регистр будет скакать, то многие скрипты и поля могут не выводиться у вас, либо выводиться, но не корректно.
Вот как будет выглядеть уже совсем готовый код html страницы:
<html> <body> <?php $sdd_db_host='';// ваш адрес где находится, хостится ваша база данных $sdd_db_name='';// Имя базы данных с которой вы хотите работать, так как их может быть множество $sdd_db_user='';// логин доступ к базе данных $sdd_db_pass='';// пароль доступа к базе данных @mysql_connect($sdd_db_host,$sdd_db_user,$sdd_db_pass);// устанавливаем связь с сервером @mysql_select_db($sdd_db_name;// переключаемся на нужную нам базу данных $result=mysql_query('SELECT * FROM `table_name`');// делаем выборку из таблицы while($row=mysql_fetch_array($result))// берем результаты из каждой строки { echo '<p>Запись id='.$row['id'].'. Текст: '.$row['text'].'</p>';// выводим данные } ?> </body> </html>
Проблема с UTF-8 кодировкой
На самом деле нет никаких проблем, только сразу после процедуры соединения с базой данных добавьте три строчки, выделенные внизу, отвечающие за переключение кодировки выводимых результатов, вот пример:
@mysql_connect($sdd_db_host,$sdd_db_user,$sdd_db_pass);// устанавливаем связь с сервером @mysql_select_db($sdd_db_name);// переключаемся на нужную нам базу данных // в какой кодировке получать данные от клиента @mysql_query('set character_set_client="utf8"'); // в какой кодировке получать данные от БД для вывода клиенту @mysql_query('set character_set_results="utf8"'); // кодировка в которой будут посылаться служебные команды для сервера @mysql_query('set collation_connection="utf8_general_ci"');
Если вы решили вернуться к программированию в 90 годы и мертвую кодировку cp1251 считаете своим идеалом то, просто замените UTF на соответствующие значения cp1251 и cp1251_general_ci.
Зачем нужен знак @ перед командами mysql?
Этот знак подавляет вывод информации об ошибках на PHP движке.
при ответе использованы
публикации SD Company