Russian Qt Forum
Ноябрь 23, 2024, 20:48 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Sqlite.Проблема с кодировкой.  (Прочитано 6735 раз)
echo
Гость
« : Июнь 14, 2008, 09:45 »

Привет, народ.
Имеется следующий код:
Код:
#include <QtSql>
#include <QTextStream>
#include <QTextCodec>
static bool createConnection()
{
    QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
    db.setDatabaseName("base.db3");
if (!db.open()) {
        qDebug() << "Cannot open database:" << db.lastError();
        return false;
    }
    return true;
}

int main(int argc, char** argv)
{
    QTextCodec* winCodec = QTextCodec::codecForName("Windows-1251");
QTextCodec::setCodecForTr(winCodec);
QTextCodec::setCodecForCStrings(winCodec);
QTextCodec::setCodecForLocale(winCodec);

QCoreApplication app(argc, argv);
QFile file("text.txt");
QTextStream stream(&file);
    if (!createConnection()) {
        return -1;
    }
    QSqlQuery query;
    QString   str  = "select * from main order by adigabza";

    if (!query.exec(str)) {
        qDebug() << "Unable to select a table";
    }
    QSqlRecord rec     = query.record();
    QString    strAdigabza;
    QString    strRussian;
    int    intLength;
file.open(QFile::WriteOnly);
while (query.next()) {
  strAdigabza = query.value(rec.indexOf("adigabza")).toString();
strRussian = query.value(rec.indexOf("russian")).toString();
     intLength  = query.value(rec.indexOf("length")).toInt();
stream << strAdigabza<<" "<<strRussian<<" "<<intLength<<";";
    }

    return 0;
}
Открывай файл а там крякозябры!!!
Как это можно исправить???
Записан
indigon
Гость
« Ответ #1 : Июнь 14, 2008, 12:00 »

Вот решение твоей проблемы, правда на другом форуме: QTextStream, QString и кодировка, UTF-8 -> windows-1251.
« Последнее редактирование: Июнь 14, 2008, 12:06 от indigon » Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #2 : Июнь 14, 2008, 13:38 »

2 echo: А поиск поюзать по разделу? Уже рассматривалась проблема с кодировкой не раз
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
kolob
Частый гость
***
Offline Offline

Сообщений: 296



Просмотр профиля
« Ответ #3 : Июнь 06, 2012, 16:57 »

Прошу сильно не ругать. Но что предлагали на форуме наверно все перепробовал. Искал и на других форумах.
Проблема все та же, из БД данные не корректно отображаются в приложении.

Вопрос, в БД sqlite нужно записывать данные только в кодировке UTF-8?
Первый раз insert-ми записал данной из виндовой консоли(по умолчанию там cp866), ну там где запустил sqlite3.exe. Выдавал "Непонимающий" и т.д.
После этого попробовал записать данные из файла в кодировке Utf-8. Результат ПОЛОЖИТЕЛЬНЫЙ.
« Последнее редактирование: Июнь 06, 2012, 17:04 от kolob » Записан

Qt 5.11.0, Win, MinGW
LisandreL
Птица говорун
*****
Offline Offline

Сообщений: 984


Надо улыбаться


Просмотр профиля
« Ответ #4 : Июнь 06, 2012, 17:25 »

Вопрос, в БД sqlite нужно записывать данные только в кодировке UTF-8?
В той кодировке, в которой БД создана:
http://www.sqlite.org/pragma.html#pragma_encoding
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.149 секунд. Запросов: 23.