У меня есть база данных, в которой хранятся строки с португальскими символами, такими как é, ç, ã.QtSQL чтение специальных символов
Я редактирую файл с запросами INSERT на Notepad ++ с UTF-8, установленным в качестве кодировки. Я также вставляю в базу данных sqlite3 после установки «PRAGMA encoding =« UTF-8 »».
Теперь, когда я пытаюсь прочитать его в своем приложении Qt, запрос возвращает недопустимые символы. Я делаю такой запрос:
QSqlQuery query;
QString description;
query.prepare("SELECT * FROM Training");
query.exec();
while(query.next())
{
description = query.record().field("description").value().toString().toUtf8();
...
}
Я уже пытался без 'toUtf8()', и 'toLatin1()'. Ни один из них не работал. Я получаю только вопросительные знаки или мусор.
EDIT: Когда я выбираю непосредственно из командной строки sqlite3, строки печатаются правильно!
Какая операционная система? –
@CL Windows 7. Я думал, что ссылка Notepad ++ сделала это ясным :) – KuramaYoko
Я, хотя драйвер DB Qt SQLite3 выполнял автоматическое преобразование кодировки в строках, вы _sure_ вам нужно что-либо сделать с возвращенным 'QString'? Даже если это не так, мне кажется странным вытащить данные UTF-8 из БД, а затем вызвать 'toUtf8()' на нем ... – cmannett85