кодировка MySQL

Тема в разделе "Базы данных", создана пользователем jred, 19 фев 2009.

Статус темы:
Закрыта.
Модераторы: latteo
  1. jred

    jred

    Регистр.:
    16 сен 2008
    Сообщения:
    383
    Симпатии:
    39
    меня интерисует вот что:

    когда я устанавливал Мускул я выбирал ср1251, а когда захожу в ПхпМойАдмин там пишется "MySQL-кодировка: UTF-8 Unicode (utf8)". Почему? как это исправить? и надо ли вообще исправлять?


    я использую форум SimpleMachines Forum, дак когда востанавливал БД из дампа выбирал ср1251, а большинство таблиц в БД почему-то все-равно utf8_general_ci ... В чем проблема? как это исправить? и надо ли исправлять? из этого следует, что у меня теперь форум не на кодировке ср1251, а на кодировке утф-8?

    когда я устанавливал модуль на форуме он создал таблицы, которые были в кодировке cp1251_general_ci, дак вот при заполнении этих таблиц русскими буквами (это когда я в админке в модуле поля заполнял и жал сохранить, шел запрос в Мускул) выдавалась ошибка, что-то типа "C5/X7/S3/..." и т.п. и нифига не заполянлось. Я полез в ПхпМойАдмин, вручную заполнил поля русскими буквами и в настройках модуля русские буквы показывались "????? ???" и полез в ПхпМойАдмин и исправил кодировку таблицы на утф8-генерал-ци и теперь и запросы с рускими буквами проходят и читаются нормально! Но почему? ведь форум изначально кодировался как ср1251!!

    но мне типо надо чтоб форум был в кодировке ср1251, т.к. сайт на ДЛЕ в кодировке ср1251 - типо одинаковые кодировки мне везде надо :((((


    вот...
     
  2. upandhigh

    upandhigh

    Регистр.:
    11 фев 2009
    Сообщения:
    235
    Симпатии:
    89
    укажи в пхпмайдмин этот запрос:
    show variables like '%char%';

    и коперни результаты в форум
     
    jred нравится это.
  3. jred

    jred

    Регистр.:
    16 сен 2008
    Сообщения:
    383
    Симпатии:
    39
    character_set_client utf8
    character_set_connection utf8
    character_set_database cp1251
    character_set_filesystem binary
    character_set_results utf8
    character_set_server cp1251
    character_set_system utf8
    character_sets_dir F:\WebServer\MySQL\share\charsets\
     
  4. upandhigh

    upandhigh

    Регистр.:
    11 фев 2009
    Сообщения:
    235
    Симпатии:
    89
    часть таблиц CP1251 а часть UTF8 скорее всего потому что у тебя при создании таблиц при их импорте в CREATE стэйтментах ЯВНО для каждой таблицы не указана кодировка. отсюа и разные у таблиц кодировки, когда указано явно пишется CP1251 когда не явно дефолтовая т.е. UTF8.

    ты можешь выставить CP1251 дефолтовую, удалить таблицы и добавить заново. и тогда у тебя будет все в CP1251. русский текст в mysql в формате UTF8 занимает ровно в два раза больше места, так как для хранения символа используется два байта. следовательно если ты перейдешь на UTF8 то все таблицы, точнее вся база целиком будет занимать больше места примерно в два раза. если сервер не очень мощный а база большая то это скажется на скорости работы базы данных.

    плюсу использования UTF8 что если кто напишет ЛЮБЫЕ символы допустим на китайском языке, или корейском или там на немецком УМЛАУТЫ разные и прочие - то эти символы не похерятся, не станут вопросиками. если тебе это **х не нада меняй все как было.
     
    jred нравится это.
  5. jred

    jred

    Регистр.:
    16 сен 2008
    Сообщения:
    383
    Симпатии:
    39
    а как мне указать/поменять чтобы Мускул все под ср1251 в будущем делал? как дефолт на ср1251 сменить?

    мне УТф-8 вообще нафиг не надо :)
     
  6. upandhigh

    upandhigh

    Регистр.:
    11 фев 2009
    Сообщения:
    235
    Симпатии:
    89
    найди файл my.cnf или my.ini зависит от того какая ОСЬ, линукс или внидовс - открой его и найди там такой блок - [mysqld] и сразу под ним вставь вот эти строки:

    после этого перезагрузи mysql сервер и попробуй реимпортировать те таблицы что ты уже импортнул и глянь кодировку. изменилось ли что
     
    jred нравится это.
  7. jred

    jred

    Регистр.:
    16 сен 2008
    Сообщения:
    383
    Симпатии:
    39
    вообще ничего не изменилось

    Добавлено через 7 минут
    меня только что чуть инфаркт не хватил, когда я зашел на форум а там все в ????????????????
    удалил строку "skip-character-set-client-handshake" - все стало нормальным...
     
  8. upandhigh

    upandhigh

    Регистр.:
    11 фев 2009
    Сообщения:
    235
    Симпатии:
    89
    а ты реимпортировал таблицы? после тогог как сменил настройки? т.е. старые все удалил? и заново все добавил из sql файла?
     
    jred нравится это.
  9. jred

    jred

    Регистр.:
    16 сен 2008
    Сообщения:
    383
    Симпатии:
    39
    да, только старые не удалял, создал новую таблицу и туда импорт сделал из сикуля, да еще и кодировку ср1251 выбирал.
    потом открыл БД и посмотрел кодировки таблиц.
     
  10. upandhigh

    upandhigh

    Регистр.:
    11 фев 2009
    Сообщения:
    235
    Симпатии:
    89
    1. ты выставил настройки
    2. ты создал таблицу выбрав ЦП1251
    3. ты импортировал данные
    4. в данных у тебя вопросики?

    сделай explain ИМЯ_ТАБЛИЦЫ; с которой ты это проделал в пхпмайдмине и коперни сюда данные

    Добавлено через 1 минуту
    сорри show create table ИМЯ_ТАБЛИЦЫ; сделай и сюда на форум запости
     
    jred нравится это.
Статус темы:
Закрыта.