Название: Проблемы с отображением русского текста Отправлено: galeks от Февраль 09, 2011, 14:53 Здравствуйте.
Имею Qt4.7 MS SQL 2005 winXP SP/3. Подключаюсь к базе данных и формирую запрос: Код: QSqlDatabase db = QSqlDatabase::addDatabase("QODBC"); создаю модель и представление: Код: model.setQuery(sql); Но если модель создавать другим способом: Код: model.setQuery(strSql); Русские символы не отображаются и при попытке получить значение поля посредством: Код: sql.value(1).toString(); Название: Re: Проблемы с отображением русского текста Отправлено: maint от Февраль 09, 2011, 18:00 ну тут вопрос интересный. В какой кодировке база ? В какой программа работает ?
Название: Re: Проблемы с отображением русского текста Отправлено: shirushizo от Февраль 09, 2011, 19:47 Используйте методы:
Код: QTextCodec * QTextCodec::codecForName ( const char * name ) Скорее всего кодировка cp1251 базы, а исходники UTF-16. Название: Re: Проблемы с отображением русского текста Отправлено: galeks от Февраль 10, 2011, 08:46 Используйте методы: Код: QTextCodec * QTextCodec::codecForName ( const char * name ) Скорее всего кодировка cp1251 базы, а исходники UTF-16. Исходники в UTF-8, а вот база данных? Вроде MS SQL 2005 хранит данные в UCS-2. Во всяком случае пробовал следующее: Код Вместо названия кодека UTF-8 пробовал ставить Windows-1251, UTF-16 т.к. последний вроде прямой потомок UCS-2 и даже пробовал написать UCS-2 хоть такого названия кодека нет в QT4: http://www.doc.crossplatform.ru/qt/4.7.x/qtextcodec.html Ситуация не изменилась. Как выдавал знаки вопроса код: Код так и выдает. Название: Re: Проблемы с отображением русского текста Отправлено: maint от Февраль 10, 2011, 12:21 думаю, любой инструмент просмотра базы может дать в какой кодировке она. Ну и можно попробовать воспользоваться функциями qstring что бы попытаться увидеть кодировку. QStrind a;
qDebug() << a.toUtf8() a.toLocal8bit Название: Re: Проблемы с отображением русского текста Отправлено: vvvxmag от Март 04, 2011, 07:27 Была похожая проблема
http://www.prog.org.ru/index.php?topic=17009.msg113886#msg113886 |