Название: QODBC, кодировка получаемых строк Отправлено: Deiv от Декабрь 28, 2007, 15:53 Есть сервер БД. Есть к нему драйвер ODBC.
В настройках драйвера ODBC есть возможность выставить кодировки в которой хранится база, в которой хочешь получать ответ на запрос и отсылать сам запрос. Пока пришел к мнению, что косячит драйвер - эти настройки в нем не действуют. Чтобы получить данные в читаемом виде приходится выполнять такую процедуру: Цитировать QTextCodec *codec = QTextCodec::codecForName("CP866"); QSqlQuery q; if (!q.exec("select nmbr, var_name, help from defaults;")) { qDebug() << " error #: " << qr.lastError().number(); qDebug() << "descr (db): " << qr.lastError().databaseText(); qDebug() << "descr (qt): " << qr.lastError().driverText(); return 1; } while (qr.next()) { qDebug() << "nmbr: " << qr.value(0) << "variable: " << qr.value(1) << "=" << codec->toUnicode(qr.value(2).toByteArray()); } Драйвер закрытый. Срок поддержки давно истек. Мы не работали с ODBC версией, потому вопросов не возникало. Можно ли, малой кровью, научить qt отдавать результаты и отсылать запросы в нужной кодировке? Другие варианты? Название: Re: QODBC, кодировка получаемых строк Отправлено: WW от Декабрь 28, 2007, 16:21 Что за сервер? Что за драйвер?
Тут все телепаты в отпуск на НГ ушли... Название: Re: QODBC, кодировка получаемых строк Отправлено: Deiv от Декабрь 28, 2007, 16:40 Что за сервер? Что за драйвер? сервер: InformixТут все телепаты в отпуск на НГ ушли... клиент: IBM/Informix-Client SDK Version 2.81.UC3 IBM/Informix ODBC LIBRARY Version 3.82.0000.UC3 Copyright (C) 1991-2003 IBM А какое отношение сервер и драйвер имеет к моему вопросу? Я ведь про "подкрутить Qt" спрашиваю? Название: Re: QODBC, кодировка получаемых строк Отправлено: WW от Декабрь 28, 2007, 16:56 Qt просто принимает то, что отдает сервер. Если сервер поддерживает перекодировки под клиента - надо указать на это ему. Если нет - то тут только конвертить самому.
А судя по коду, сервер отдает Вам данные в досовской кодировке, а в Qt все стороки в юникоде. Покопайтесь в SDK драйвера, манах сервера. дело решается там. Поищите на бимеровских сайтах. там у них много инфы есть, надо только найти. |