Russian Qt Forum

Qt => Базы данных => Тема начата: toggetit от Апрель 01, 2009, 10:43



Название: Кодировка MySQL. Вопрос новичка
Отправлено: toggetit от Апрель 01, 2009, 10:43
Добрый день.

Работаю с Qt 4.4.3 в Ubuntu 8.10. Версия MySQL 5.0.67. Всё из репозиториев. Системная кодировка на сколько я понял - Utf8. При создании/просмотре баз через консоль русские символы отображаются корректно. Из написанных приложений Qt - "кракозябры".
Подскажите как исправить ситуацию

P.S. Порывшись по форуму нашёл такой рецепт:
    QTextCodec *codec = QTextCodec::codecForName("UTF8");
    QTextCodec::setCodecForTr(codec);
    QTextCodec::setCodecForCStrings(codec);
    QTextCodec::setCodecForLocale(codec);
непомогает.

P.P.S. В будующем необходимо будет хранить данные в cp-1251.
P.P.P.S. Буду благодарен за любые советы.


Название: Re: Кодировка MySQL. Вопрос новичка
Отправлено: crackedmind от Апрель 01, 2009, 11:45
Выполнить запросы, подставив нужную кодировку. Вроде бы должно помочь. Давно это было, плохо помню :)
Цитировать
SET NAMES 'charset_name'
SET CHARACTER SET charset_name


Название: Re: Кодировка MySQL. Вопрос новичка
Отправлено: toggetit от Апрель 01, 2009, 14:00
Всмысле? Я же и так знаю что всё в UTF8. Нужно заставить Qt отображать правильно

т.е. в какой тогда Qt отображает?

P.S. Не заработало - те же каракули (Русский)


Название: Re: Кодировка MySQL. Вопрос новичка
Отправлено: toggetit от Апрель 02, 2009, 15:18
ПРОБЛЕМА решилась следующим способом:

Опытным путём было установлено что в MySQL базы создаются ПО-УМОЛЧАНИЮ с ключом DEFAULT CHARSET latin1. Отсюда весь геморрой

добавляем строку "default-character-set=utf8" в  /etc/mysql/my.cnf в блоке [mysqld] и наслаждаемся!!!