1. Вы находитесь в архивной версии форума xaker.name. Здесь собраны темы с 2007 по 2012 год, большинство инструкций и мануалов уже неактуальны.
    Скрыть объявление

Русская кодировка в MySQL 5.х

Тема в разделе "Общие вопросы", создана пользователем Web-Evt, 11 фев 2008.

  1. Web-Evt

    Web-Evt Иллюзор ..::V.I.P::..

    Регистрация:
    31 май 2007
    Сообщения:
    13
    Симпатии:
    86
    Баллы:
    0
    Сегодня мы рассмотрим, что нужно написать в конфигурационном файле /etc/my.cnf для того, чтобы настроить mysql стандартной сборки на работу с кодировкой cp1251 по умолчанию без всякой перекомпиляции.

    Рассмотрим пример конфига на основе MySQL 5.x.

    В раздел [mysqld] необходимо добавить следующее:

    Код:
    default-character-set=cp1251
    character-set-server=cp1251
    collation-server=cp1251_general_ci
    init-connect="SET NAMES cp1251"
    skip-character-set-client-handshake
    Две последние строки принудительно устанавливают кодировку cp1251 для всех запросов.

    В раздел [mysqldump] достаточно добавить только:

    Код:
    default-character-set=cp1251
    Этого достаточно, чтобы MySQL работал с windows-1251 кодировкой по умолчанию.

    Если же при импорте базы данных вместо русских букв выдаются иероглифы или знаки вопроса, это значит, что дамп был сделан в кодировке, отличной от cp1251. Переделайте дамп в cp1251 или перекодируйте его в нужную кодировку с помощью утилит iconv или recode.

    (c) dedic.ru

    Если у вас нет доступа к ini файлу MySQL, то при каждом подключении вашего скрипта к БД нужно выполнять:
    Код:
    mysql_query ( "SET NAMES нужная кодировка");
    mysql_query ( "SET collation_connection='нужная кодировка_general_ci'");
    mysql_query ( "SET collation_server='нужная кодировка_general_ci'");
    mysql_query ( "SET character_set_client='нужная кодировка'");
    mysql_query ( "SET character_set_connection='нужная кодировка'");
    mysql_query ( "SET character_set_results='нужная кодировка'");
    mysql_query ( "SET character_set_server='нужная кодировка'");
     
    1 человеку нравится это.
  2. NARKOZ

    NARKOZ Новичок

    Регистрация:
    27 ноя 2007
    Сообщения:
    86
    Симпатии:
    8
    Баллы:
    0

    Ошибка!

     
  3. Web-Evt

    Web-Evt Иллюзор ..::V.I.P::..

    Регистрация:
    31 май 2007
    Сообщения:
    13
    Симпатии:
    86
    Баллы:
    0
    NARKOZ,
    mysql_query () у тебя выполняется до подключения или после?

    Твоя ошибка говорит о том, что ты не указал пароль рута при подключении к базе данных.
     
  4. NARKOZ

    NARKOZ Новичок

    Регистрация:
    27 ноя 2007
    Сообщения:
    86
    Симпатии:
    8
    Баллы:
    0
    до подключения
    как можно обогнуть эту проблему? как коннектиться к бд?
     
  5. Web-Evt

    Web-Evt Иллюзор ..::V.I.P::..

    Регистрация:
    31 май 2007
    Сообщения:
    13
    Симпатии:
    86
    Баллы:
    0
    Мда. Если ты не знаешь, что перед использованием mysql_query нужно подключиться к БД, если ты даже не знаешь как подключиться к БД, ТО зачем тебе знать о проблемах кодировки? Тебе совершенно в другой топ. Читай учебники по php и mysql.
     
  6. Хел

    Хел ..::V.I.P::..

    Регистрация:
    15 ноя 2006
    Сообщения:
    0
    Симпатии:
    202
    Баллы:
    0
  7. ma5ter

    ma5ter Новичок

    Регистрация:
    4 окт 2011
    Сообщения:
    22
    Симпатии:
    4
    Баллы:
    0
    Вставлю свои две копейки, если в винде, то все просто а вот в linux, например gentoo, который не имеет русской локали при установке, то нужно сначала ее добавить:

    смотрим что есть:
    Код:
    locale -a
    
    добавляем в /etc/locale.gen
    Код:
    	ru_RU.UTF-8 UTF-8
    	ru_RU.CP1251 CP1251
    
    генерим:
    Код:
    locale-gen
    
    проверяем:
    Код:
    locale -a
    
     
    1 человеку нравится это.

Поделиться этой страницей