За последние 24 часа нас посетили 43787 программистов и 1741 робот. Сейчас ищут 1172 программиста ...

Кодировка сервера

Тема в разделе "MySQL", создана пользователем gix, 30 май 2015.

  1. gix

    gix Новичок

    С нами с:
    28 окт 2014
    Сообщения:
    168
    Симпатии:
    0
    Добрый день. Столкнулся с такой проблемой- при выборе данных из БД получаю ???????. НО если задать кодировку явно при подключении
    Код (PHP):
    1. $db=new PDO('mysql:host=localhost;dbname=mysite;charset=UTF8','root',''); 
    то все работает. НО самое смешное то, что сервер полностью настроен на utf-8_general_ci и все что нужно я прописал в my.cnf. и запросы к базе SHOW VARIABLES LIKE'character%'; и SHOW VARIABLES LIKE 'collation%'; возвращают везде utf-8. Как такое может быть?????
    P.S. перед тем как создавать пост я гуглил полдня, поэтому кидать ссылки на статьи не стоит.
     
  2. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Так, что при соединении нужно указывать кодировку соединения, внезапно.
     
  3. gix

    gix Новичок

    С нами с:
    28 окт 2014
    Сообщения:
    168
    Симпатии:
    0
    ну тогда сообщу новость-если в настройках сервера прописать дефолтные настройки, то указывать ничего не надо. По аналогии с постоянным указанием header('Content-Type: text/html; charset=utf-8') в скрипте либо установки нужно кодировки в конфиге сервера.
     
  4. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Не указывайте. Но потом не удивляйтесь, например, SQL-инъекциям второго порядка.
     
  5. smitt

    smitt Старожил

    С нами с:
    3 янв 2012
    Сообщения:
    3.166
    Симпатии:
    65
    character_set_client тоже utf8?
     
  6. gix

    gix Новичок

    С нами с:
    28 окт 2014
    Сообщения:
    168
    Симпатии:
    0
    character_set_client utf8
    character_set_connection utf8
    character_set_database utf8
    character_set_filesystem binary
    character_set_results utf8
    character_set_server utf8
    character_set_system utf8

    collation_connection utf8_general_ci
    collation_database utf8_general_ci
    collation_server utf8_general_ci
    my.cnf:
    init-connect='SET NAMES utf8'
    character-set-server = utf8
    collation-server = utf8_general_ci
     
  7. Ganzal

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

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    а php.ini?
     
  8. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Блин, так какие проблемы-то?
     
  9. gix

    gix Новичок

    С нами с:
    28 окт 2014
    Сообщения:
    168
    Симпатии:
    0
    в нем все норм default_charset = "UTF-8"
    Да не, проблемы нет указать одно лишние слово в проекте), просто хотел разобраться почему то так
     
  10. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Потому что не от нефиг делать рекомендуется явно указывать кодировку соединения. У тебя без этого как минимум экранирование будет дыряво работать.
     
  11. gix

    gix Новичок

    С нами с:
    28 окт 2014
    Сообщения:
    168
    Симпатии:
    0
    ну видимо таки ошибка все равно где то есть. потому что во всех статьях рассказывается о настройке my.cnf. Настроил, но видимо где то ошибся.ладн хрен с ним.