Ticket #89 (closed ошибка: неисправимо)
Проблемы с кодировкой
| Reported by: | stddenis.ya.ru | Owned by: | j-sheridan.livejournal.com |
|---|---|---|---|
| Priority: | низкий | Milestone: | 1.0rc3 |
| Component: | sqlite storage | Version: | 1.0 |
| Keywords: | Cc: |
Description
Билд из свежескачанного транка. База Sqlite (позже проверил с MySQL - там все пучком).
В теле сообщения вся кириллица отображается в виде знаков вопроса.
В то же время, заголовки сообщений - в норме.
Глянув на код получения этих полей из БД исправил в sqlite_storage.cpp:
body = QString::fromUtf8(query_select->value(0).toByteArray());
на
body = query_select->value(0).toString();
Все заработало. И просмотр и тестовая отправка.
Создал базу MySQL - там все работает. Сделал изменение, аналогичное вышеуказанному, в mysql_storage.cpp. Но это лишь нарушило работу - если мне не изменяет глаз, то UTF8 воспринялся как ANSI.
Возможно проблема в том, что драйверы БД поразному выдают результаты.
Итого:
имхо, нужно сделать изменение в ASQLiteStorage::getMessageBody, которое я описал выше. И в ASQLiteStorage::compressStorage
QByteArray message = query_select->value(1).toByteArray();
заменить на:
QByteArray message = query_select->value(1).toString().toUtf8();
Change History
comment:1 Changed 2 years ago by antonbatenev.ya.ru
- Owner set to j-sheridan.livejournal.com
- Status changed from new to assigned
comment:2 Changed 11 months ago by antonbatenev.ya.ru
- Status changed from assigned to closed
- Type changed from задача to ошибка
- Component changed from all to sqlite storage
- Priority changed from основной to низкий
- Milestone set to 1.0rc3
- Resolution set to неисправимо
branch specific, закрыта за давностью (исправлять, судя по http://www.rsdn.ru/forum/janus/4193283.1.aspx, никто не будет).
