Название: Проблема с кодировкой при QSqlQuery.prepare()\bindValue Отправлено: Crazy Sage от Февраль 01, 2012, 19:12 Работаю с БД Access (выбора нет, тз жесткое), записываю в нее поля из свойств pdf-ок, поля вытаскиваю Poppler'ом
Поскольку в них, как оказалось, могут быть спецсимволы - решил воспользоваться prepare\bindValue, с некоторыми все ок, у некоторых русская кодировка при записи в базу слетает напрочь? Код: Poppler::Document* document = Poppler::Document::load(file.absoluteFilePath()); Делаю QListWidget->addItem(title); - все ок, все по русски, а в базу выводятся кракозябры Если вместо prepare\bindValue делаю title=title.replace("'","\"") - все нормально с кодировками, но менять апострофы на кавычки все-таки не айс. А при title.replace("'","\\'") запрос почему-то вообще не выполняется. Qt 4.7.3, работаю под виндой, подскажите, что можно сделать с QString'ом, чтобы влияние кодировки нивелировать? Название: Re: Проблема с кодировкой при QSqlQuery.prepare()\bindValue Отправлено: LisandreL от Февраль 02, 2012, 07:04 А так результат какой?
Код: query.prepare("UPDATE documents SET document_name=:name WHERE id=:id"); Название: Re: Проблема с кодировкой при QSqlQuery.prepare()\bindValue Отправлено: Crazy Sage от Февраль 02, 2012, 09:33 Мда, дело не в пдфке, дело в том, которая из них обрабатывается первой. Как будто для нее не срабатывает
QTextCodec::setCodecForCStrings(QTextCodec::codecForLocale()); При этом для всех последующих пдфок и для всех запросов с русскими буквами но без prepare() все работает нормально. Название: Re: Проблема с кодировкой при QSqlQuery.prepare()\bindValue Отправлено: Crazy Sage от Февраль 06, 2012, 08:51 Вызываю setCodecForCStrings прямо перед запросом - не помогает. Никаких других запросов\функций оперирующих с кодировками вроде вообще нет. Что еще можно сделать? Может как-то принудительно установить кодировку соединения с базой или еще что?
|