Статьи

Неверная кодировка в MySql из PHP. Вопросы вместо слов

  • сайт делается в кодировке utf8, о чем указано в заголовке страницы между тегами head: [code][/code]
  • страница создается в редакторе в кодировке utf8
  • сама база создана с указанием кодировки utf8

При этом получилось так, что при извлечении данных из базы я получал вместо строк с русским текстом знаки вопросов, хотя браузер правильно понимал кодировку. Решение данной проблемы оказалось простым. Надо после соединения с MySql базой из PHP указать явную кодировку запросом set names utf8 Например, так: $result = mysql_query ("set names utf8", $link); где $link - линк на идентификатор соединения с базой (см. mysql_connect()) Всё, теперь данные выводятся в верной кодировке. Вообще-то эта проблема имеет и другие корни с соответственно другими методами решения. Более подробно о проблемах с кодировками в MySQL можно почитать в следующих источниках:

  1. phpMyadmin по-русски. Очень доходчиво, по полочкам все разложено и в доступной краткой форме.
  2. PHP FAQ. Так же полезная информация, но еще рассказывается что делать если требуется перекодировка данных.
  3. Linux.by wiki pages. А это вообще целый вики на эту тему.