Название: MySQL и cp1251 - помогите настроить русский язык Отправлено: neosapient от Июнь 15, 2010, 12:38 Здравствуйте.
Пользовался поиском - подобных вопросов нашел много, но не ответа не нашел. Есть БД со следующими настройками: Цитировать character_set_client = cp1251 character_set_connection = cp1251 character_set_database = utf8 character_set_filesystem = binary character_set_results = cp1251 character_set_server = utf8 character_set_system = utf8 Следующий код выводит вместо русских букв знаки вопроса "? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?", Как это и исправить ? Код: #include <QtGui> Название: Re: MySQL и cp1251 - помогите настроить русский язык Отправлено: crossly от Июнь 15, 2010, 12:43 зачем тебе cp1251??.... храни в utf-8
Название: Re: MySQL и cp1251 - помогите настроить русский язык Отправлено: neosapient от Июнь 15, 2010, 12:49 Цитировать зачем тебе cp1251??.... храни в utf-8 БД - офисная и существеут в данном состоянии уже год.Изменить её настройки - не имею права. Как мне правильно считать русские буквы из БД ? Название: Re: MySQL и cp1251 - помогите настроить русский язык Отправлено: crossly от Июнь 15, 2010, 12:54 епть.... так у вас и так хранится все в utf-8... смотри внимательно конфиг
Название: Re: MySQL и cp1251 - помогите настроить русский язык Отправлено: neosapient от Июнь 15, 2010, 13:10 С MySQL полноценно работать не приходилось.
Что следует изменить в коде примера (из первого поста), чтобы правильно считывались данные ? Название: Re: MySQL и cp1251 - помогите настроить русский язык Отправлено: lit-uriy от Июнь 15, 2010, 13:47 >>Что следует изменить в коде
изменить строку: QTextCodec::setCodecForCStrings(QTextCodec::codecForName("Windows-1251")); на: QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8")); убрать строку: my_db.exec("SET NAMES cp1251"); Название: Re: MySQL и cp1251 - помогите настроить русский язык Отправлено: neosapient от Июнь 15, 2010, 14:29 Понял. Получилось. :)
Код:
Название: Re: MySQL и cp1251 - помогите настроить русский язык Отправлено: lit-uriy от Июнь 15, 2010, 16:47 >>QTextCodec::setCodecForLocale(QTextCodec::codecForName("Windows-1251"));
а для чего ты кодек локали устанавливаешь? у тебя локаль системы отличается от Windows-1251? |