Специальное предложение!   Домен  на 2 года всего 199 грн!   Доменная зона   со скидкой 50% *
  • UAH
  • USD
  • RUB
  • EUR
  • +38(044) 392-74-33  Киев
  • +38(057) 728-39-00  Харьков
  • +38(056) 794-38-31  Днепропетровск
  • +38(062) 210-24-93  Донецк
  • +38(032) 229-58-93  Львов
  • +38(048) 738-57-70  Одесса
  • +38(093) 449-04-21  Life
  • +38(067) 400-88-44  Киевстар
  • +38(095) 007-72-35  MTC
  • +1(888)393-24-51  USA, Toll free
  • +44(131)507-01-14  Great Britain
  • +7(499) 348-28-61  Москва

Неправильная кодировка при выводе данных из базы

Хостинг Украина FAQ Хостинг Неправильная кодировка при выводе данных из базы

В случае, если кодировка сайта и базы данных не совпадает (часть текста на сайте выводится нормально, а часть текста из базы - в виде непонятных знаков). Необходимо в скрипте, который подключается к базе данных добавить команды, которые укажут MySQL серверу кодировку, в которой выводить текст. В зависимости от того, какую библиотеку PHP вы используете команды будут выглядеть так:

Для библиотеки mysql

mysql_query("SET NAMES 'utf8' COLLATE 'utf8_general_ci'");
mysql_query("SET CHARACTER SET 'utf8'");

Для библиотеки mysqli

mysqli_query($link, "SET NAMES 'utf8' COLLATE 'utf8_general_ci'");
mysqli_query($link, "SET CHARACTER SET 'utf8'");

где:

  • вместо utf8 необходимо указать нужную кодировку (например cp1251)
  • вместо utf8_general_ci нужное сопоставление кодировок (например cp1251_general_ci). Полный перечень кодировок и сопоставлений MySQL доступен в документации.
  • для библиотеки mysqli первым параметром указывается указатель на подключение к БД - в вашем скрипте он может быть отличным от $link, узнать его можно посмотрев в исходном коде название переменной, которой присваивается результат выполнения функции mysqli_connect().
Для библиотеки PDO при инициализации нового подключения нужно добавить 4й параметр:
$db = new PDO(DB_DSN, DB_USER, DB_PASS, array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES \'UTF8\''));
Написал belomor3k 31.03.2013 в 13:42 Ответить
Имя:
E-mail:

Обновить картинку
Ваш комментарий будет добавлен после проверки администратором
Спасибо огромное, много искал, а всё оказалось так понятно и доступно именно здесь!
Написал bembikiev 13.03.2015 в 19:20 Ответить
Имя:
E-mail:

Обновить картинку
Ваш комментарий будет добавлен после проверки администратором
От меня тоже огромное спасибо. Столько времени никогда в жизни не убивали. А оказалось элементарно. Насколько код легче-то стал!..
Написал anse.seo 08.10.2015 в 20:32 Ответить
Имя:
E-mail:

Обновить картинку
Ваш комментарий будет добавлен после проверки администратором
Так и не понял куда это нужно вставлять? в PHP? я вставил, он мне ошибку выдал
Написал keepsmiling.in.ua 22.06.2016 в 17:54 Ответить
Имя:
E-mail:

Обновить картинку
Ваш комментарий будет добавлен после проверки администратором
Вставлять нужно в PHP код после того, как произошло подключение к БД.
Написал Илья 26.06.2016 в 10:50 Ответить
Имя:
E-mail:

Обновить картинку
Ваш комментарий будет добавлен после проверки администратором
О боже все просто так, какой же я глупый, пробывал кучу вариантов, думал может с хостингом беда, уже менять хотел, а оказалось все намного проще, спасибо вам)
Написал ltleirffantastic 01.08.2016 в 10:17 Ответить
Имя:
E-mail:

Обновить картинку
Ваш комментарий будет добавлен после проверки администратором

Добавить комментарий
Хотите ответить на существующий комментарий - воспользуйтесь кнопкой Ответить под комментарием на который даёте ответ.
Имя:
E-mail:

Обновить картинку
Ваш комментарий будет добавлен после проверки администратором.
Внимание! Чтобы ответить на существующий комментарий, пожалуйста, нажмите на кнопку Ответить, которая находится под соответствующим комментарием.

Другие полезные статьи:

Горячая линия
(044)
392 74 33
другие города