Здравствуйте.
Пользовался поиском - подобных вопросов нашел много, но не ответа не нашел.
Есть БД со следующими настройками:
character_set_client = cp1251
character_set_connection = cp1251
character_set_database = utf8
character_set_filesystem = binary
character_set_results = cp1251
character_set_server = utf8
character_set_system = utf8
Следующий код выводит вместо русских букв знаки вопроса "? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?", Как это и исправить ?
#include <QtGui>
#include <QtSql>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("Windows-1251"));
QTextCodec::setCodecForTr(QTextCodec::codecForName("Windows-1251"));
QTextCodec::setCodecForLocale(QTextCodec::codecForName("Windows-1251"));
QSqlDatabase my_db = QSqlDatabase::addDatabase("QMYSQL", "mysql_db");
my_db.setHostName("192.168.1.2");
my_db.setDatabaseName("report");
my_db.setUserName("1C");
my_db.setPassword("1C");
my_db.open();
my_db.exec("SET NAMES cp1251");
QSqlQuery query(my_db);
query.exec("SELECT name,login FROM tbl_users");
while (query.next()) {
QString name = query.value(0).toString();
qDebug() << name;
char localbuf[256]={0};
sprintf(localbuf,"%s",name.toAscii().data());
}
}