Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: кодировка sqlite
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt Разработка баз данных
512es
всем привет!)

как известно sqlite поддерживает 2 кодировки..
UTF-8 и UTF-16

пытаюсь вывести данные из базы, которая была составлена с использованием UTF-8, через QSqlTableModel.
результат - все русские буквы квадратиками.

перегуглил весь инет в поисках решения. не нашёл..

манипуляции с QTextCodec ни к чему не привели.

хочется заставить qt открывать базу в режиме UTF-8..


есть идеи?)
Litkevich Yuriy
Цитата(512es @ 23.4.2009, 21:38) *
манипуляции с QTextCodec ни к чему не привели.
какие, например?
512es
например такие:
QTextCodec* codec = QTextCodec::codecForName("UTF-8");
QTextCodec::setCodecForCStrings(codec);
QTextCodec::setCodecForLocale(codec);
QTextCodec::setCodecForTr(codec);

пробовал разные кодировки..
Litkevich Yuriy
Цитата(512es @ 23.4.2009, 21:56) *
QTextCodec::setCodecForCStrings(codec);
эта поидее и должна работать. Проверь на демке Sqlbrowser (добавь в main эту строку.)
trdm
Сильно не разбирался в проблеме, но:
http://habrahabr.ru/blogs/sql/57915/
или
QSqlDatabase m_db = QSqlDatabase::addDatabase("QSQLITE");
m_db.exec("PRAGMA encoding = \"UTF-8\"");
http://www.sqlite.org/pragma.html
512es
setCodecForCStrings попробовал все варианты. ничего не меняется. совсем. разве что при указании кодировки UTF-16 и 32 драйвер не загружается
Цитата
QSqlDatabase: ??? driver not loaded


на PRAGMA encoding вообще ноль реакции

мне кажется я знаю в чём проблема.. база была создана через API функцию sqlite3_open() и в неё писали обычные std::string строки. программа работала и не было заметно никаких глюков..
хочется конечно оставить совместимость со старой версией, но если это повлечёт за собой много сложностей, то лучше наверное конвертировать.. не знаю ещё, правда, как..
512es
пришлось написать конвертер в UTF-16..
теперь работает всё без проблемм. но при переносе на чистую машину ничего не отображается в tableView.. может ещё какой дллки нехватает.. буду искать..
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.