За последние 24 часа нас посетили 22694 программиста и 1281 робот. Сейчас ищут 874 программиста ...

Кодировка скрипта utf-8 - help!

Тема в разделе "PHP для новичков", создана пользователем artur89, 12 май 2016.

  1. artur89

    artur89 Активный пользователь

    С нами с:
    22 сен 2011
    Сообщения:
    4
    Симпатии:
    0
    Кодировка в phpmyadmin отображается кракозяблями!

    Ребята знаю что тема извечная, но вот пытаюсь перевести свой простой сайт на php (пока что на WAMP) с 1251 на utf-8 вот что имеется.
    Apache 2.x
    PHP5x

    Кодировка самих файлов скриптов notepad'ом выставил в UTF8-without BOM
    Тестовый скрипт добавляет русский текст в БД MYSQL.
    Во всех html документах сайта кодировка прописана meta charset=utf-8 и они как файлы тоже в utf8 без BOM.
    В phpmyadmin кракозябли, сравнение стоит utf8_general_ci, решается проблема только когда я в скрипт вначале прописываю mysql_query(SET_NAMES utf8) - тогда вставляется нормально! Но я понимаю что это лишний запрос к бд в каждом скрипте нужно делать! Подскажите как решить проблему??

    P.S. методом проверки понимаю что данные в итоге вставляются в бд в windows 1252 (проверял дешифратором данных из phpmyadmin).
    Не пойму в какой связке проблема толи в сервере apache, толи в самом phpmyadmin!

    Выручайте((((
     
  2. mr.akv

    mr.akv Активный пользователь

    С нами с:
    31 мар 2015
    Сообщения:
    1.604
    Симпатии:
    206
    Запомни, юный падаван: всегда сообщай базе, в какой кодировк ты работаешь. Всегда. Т.е. Set names указывай абсолютно всегда. Это не плохо, это наоборот хорошо
     
  3. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.230
    Симпатии:
    1.715
    Адрес:
    Молдова, г.Кишинёв
    Может отправлять HTTP заголовок и указывать кодировку, а сами данные могут быть в другой кодировке, и HTTP заголовки имеют приоритет над meta тегом с указанием кодировки. Denwer бывает таким грешит, так у него настроен Apache.

    В PHPMyAdmin есть файл конфигурации, там можно указать в какой кодировке общаться с mysql сервером.

    mysql уже удалили в PHP7, используй mysqli или PDO
    https://php.ru/manual/mysqli.set-charset.html

    Надо пересоздать схему с utf8_unicode_ci
     
  4. artur89

    artur89 Активный пользователь

    С нами с:
    22 сен 2011
    Сообщения:
    4
    Симпатии:
    0
    Спасибо попробую!