Название: Qt + русский текст Отправлено: Antiglobalist от Ноябрь 12, 2010, 09:55 Подскажите как работать с русским текстом в коде?При вводе такого имени базы подключение не проходит
Код: db.setDatabaseName("Справочник"); Код: query.exec("insert into per values(102, 'Иван', 'Петров')"); С латинскими всё нормально. Название: Re: Qt + русский текст Отправлено: Пантер от Ноябрь 12, 2010, 10:01 Не используй кирилицу в коде.
db.setDatabaseName(tr ("Reference")); И потом переводишь. Название: Re: Qt + русский текст Отправлено: UVV от Ноябрь 12, 2010, 10:17 > db.setDatabaseName("Справочник");
> query.exec("insert into per values(102, 'Иван', 'Петров')"); За это по рукам линейкой давать надо... Название: Re: Qt + русский текст Отправлено: Antiglobalist от Ноябрь 12, 2010, 10:56 Написал
Код: QTextCodec::setCodecForTr(QTextCodec::codecForName("Windows-1251")); База MySQL кодировка сервера cp1251 При работе в ней через командную строку русский текст не отображает , приходится прописывать set name cp866(Dos-Russia) Название: Re: Qt + русский текст Отправлено: Пантер от Ноябрь 12, 2010, 11:03 1. Читай про локализацию в Qt.
2. Не стоит давать БД название на кирилице. Название: Re: Qt + русский текст Отправлено: Denjs от Ноябрь 12, 2010, 11:45 Написал 1) "MySQL кодировка сервера cp1251" -> use UTF-8, Dude.Код: QTextCodec::setCodecForTr(QTextCodec::codecForName("Windows-1251")); База MySQL кодировка сервера cp1251 При работе в ней через командную строку русский текст не отображает , приходится прописывать set name cp866(Dos-Russia) 2) "Но в базу так и не зашло" -> Какие _именно_ ошибки? вы Qt-MySQL плагин собирали? 3) После того как убедитесь что ваши исходники в UTF-8, на всякий случай добавьте в код Код: QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8")); где-то так. Название: Re: Qt + русский текст Отправлено: BRE от Ноябрь 12, 2010, 13:06 потому что кодировка всех QString "внутри" - UTF-8. Внутри QString не UTF8. ;)где-то так. Название: Re: Qt + русский текст Отправлено: Denjs от Ноябрь 12, 2010, 13:47 потому что кодировка всех QString "внутри" - UTF-8. Внутри QString не UTF8. ;)где-то так. Название: Re: Qt + русский текст Отправлено: tim474 от Ноябрь 12, 2010, 20:20 А саму базу данных в UTF8 перевести возможности нету?
Название: Re: Qt + русский текст Отправлено: Antiglobalist от Ноябрь 13, 2010, 00:37 Возможности безграничны)Пишу лабу "Телефнный сравочник".
Нужно чтобы данные в таблицах были на русском языке а остальные пофиг ... Раньше просто не приходилсь в Qt работать с базой. Советуете базу перевести в utf8 и так работать? Плагины собраны , запрос типа Код: query.exec("create table per(id int primary key, " Пробывал сделать запрос таким спосбом Код: QString str,strF = "insert into table per(id, firstname, lastname)" А через бинВалуе Код: query.prepare("Insert into per(id, firstname, lastname) values(:id,:firstname,:lastname);"); Название: Re: Qt + русский текст Отправлено: tim474 от Ноябрь 13, 2010, 03:08 А setCodecForCStrings не помогает?
Название: Re: Qt + русский текст Отправлено: Antiglobalist от Ноябрь 13, 2010, 07:13 Спасибо всем , решил проблему =)
Название: Re: Qt + русский текст Отправлено: Пантер от Ноябрь 13, 2010, 08:28 Antiglobalist: у нас принято рассказывать как решил проблему.
Название: Re: Qt + русский текст Отправлено: mapron от Ноябрь 13, 2010, 13:22 у меня была та же проблема , решается QString::fromUtf8("русскыя буковы");
Все дело втом, что в QString данные хранятся, не в UTF-8 а в UCS-2. Для получения этой строки из других форматов имеются статичные члены. Надо читать маны чуть-чуть :) Название: Re: Qt + русский текст Отправлено: Antiglobalist от Ноябрь 16, 2010, 16:00 QTextCodec::setCodecForCStrings(QTextCodec::codecForName("Windows-1251"));
QTextCodec::setCodecForTr(QTextCodec::codecForName("Windows-1251")); Прописал не после QAp а в другом файле перед созданием подключения. В этом и были все проблемы. Название: Re: Qt + русский текст Отправлено: Danila_Bagrofff от Декабрь 21, 2010, 16:29 добавлю еще свои 5 копеек...
Тоже долго возился с проблемой кодировки. Использовал не QMYSQL подключение, а через QODBC, при этом скачал свежий коннектор. И проблема отпала! Удачи и вам! Название: Re: Qt + русский текст Отправлено: crossly от Декабрь 21, 2010, 16:57 ИМХО костыль...
|