Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум на CrossPlatform.RU _ SQL. Базы данных. _ SQLITE CP1251, как корректно читать в QT4?

Автор: rotor 23.9.2010, 11:36

Имеется БД SQLITE в которой имеются записи кирилицей в кодировке CP1251, при попытке чтения данных из БД возвращается кирилическая строка в виде "??????????? ???? ".
Как с этим бороться?

Автор: Litkevich Yuriy 23.9.2010, 13:10

например: setCodecForCString для кодировки БД

Автор: rotor 24.9.2010, 13:32

Цитата(Litkevich Yuriy @ 23.9.2010, 9:10) *
например: setCodecForCString для кодировки БД

codecForTr(), setCodecForCStrings, setCodecForLocale() пробовал это не помагает.


QByteArray encodedString = query.value(Name).toByteArray;

QTextCodec *codec = QTextCodec::codecForName("cp1251");
QString string = codec->toUnicode(encodedString);

на MySQL это работает нормально, а вот в SQLITE не дает результата.

query - возвращает далеко не то что было в базе(на уровне байтов).
Да собственно как и запись в БД на SQLITE в коде 1251 у меня так и не получилось, хотя очень сильно нужно.
А вот с MySql проблем нет, что посылаеш то и ложится в базу.

Автор: bynet 4.10.2010, 15:41

Запись у меня получилось с помощью query.bindValue();
Пример: query.bindValue(":namecompany",QString::fromUtf8("Название организации"));
fromUtf8 - попробуй заменить на тот который тебе нужно.
И читает тоже.

Автор: DenisKh001 16.6.2011, 16:30

SQLite никак не может быть в ср1251. Каким средством для пользуешься для создания/редактирования базы?

Автор: RazrFalcon 16.6.2011, 16:40

Опоздали на год =)

Автор: Litkevich Yuriy 17.6.2011, 8:33

В старых темах лучше задавать связанный вопрос, а не отвечать. Т.к. ответ явно не имеет актуальности.

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)