• Всем добрый день. Никак не могу понять в чем дело. Есть база в MySQL (utf-8), есть php код (подключается к этой базе и берет данные) и есть сайт на wordpress. Код прекрасно отрабатывает и возвращает корректные данные, если его разместить в отдельном файле. Если же разместить этот код на странице сайта в wordpress (используя любой плагин, позволяющий включать php код), то на странице сплошные кракозябры. В чем может быть дело? Все перепроверил и уже не знаю на что думать.. Причем кракозябрами на странице wordpress отображаются именно данные из базы. echo «привет»; будет выведено нормально.

Просмотр 7 ответов — с 1 по 7 (всего 7)
  • ох уж эти MySQL, вечно любят прикидываться UTF-8, а на самом деле там
    может быть что угодно

    на странице где появляются кракозябры попробуй переключить браузер в другие кодировки если увидишь кракозябры в нормальном тексте значит эта кодировка и есть в твоей БД
    остается только перекодировать iconv тебе в помщь

    переключал. все равно кракозябры. только другие. как-то сомнительно, что проблема в mysql. этот php код, помещенный в отдельный файл, в консоль выводить нормальный текст, в окно браузера выводит нормальный текст. кракозябры только если код помещается в тело страницы wordpress. вот что для меня загадка. причем, повторюсь еще раз, echo «привет»; помещенный на той же странице wordpress выводит нормальный текст, а результат SELECT-а, пропущеный через mysql_fetch_array — кракозябры…

    можете поступить так — сделайте плагин для своего кода, оформите через шорттег — и вставляйте его на любой странице, где хотите..
    инфа в кодексе есть.. там плагин написать, не так много забот))

    Есть база в MySQL (utf-8), есть php код (подключается к этой базе и берет данные)

    Между «подключается» и «берет» должнен быть пункт «устанавливает кодировку» (SET NAMES). Если этого не делать, то кодировка «общения» будет та, которая стоит на хостинге по умолчанию, то есть, непредсказуемая.

    на хостинге utf-8. set names добавлял. не помогает. вечером попробую подсунуть свой код в виде плагина.

    на хостинге utf-8.

    В каком месте? Боюсь, Вы не понимаете, о чем речь.

    set names добавлял.

    Как? Код покажите.

    кажется я нашел в чем причина. данные в базу я заносил с консоли. когда открыл таблицы в phpmyadmin, то увидел те самые кракозябры, которые наблюдал на странице сайта. в итоге просто перебил все данные (благо их не много) уже в phpmyadmin. все. проблема решена.
    моя ошибка была в том, что перед внесением данных в базу с консоли забыл выполнить set names utf8. не нужно забывать такие вещи )
    всем большое спасибо за участие

Просмотр 7 ответов — с 1 по 7 (всего 7)
  • Тема «PHP, MySQL, кодировка…» закрыта для новых ответов.