Название: Yet another MySQL subject Отправлено: xk от Февраль 24, 2007, 14:10 Перечитал топики, но так и не смог сделать :oops:
Можете пинать, но только помогите ! :) Вообщем проблема в кодировках вместо русских букв всякое лезет... итак, исходные данные: ОС(и клиент и сервер): Windows XP SP2 Qt: 4.2.0 commerce MySQL: 4.1 Внутренняя кодировка MySQL: при установке указал из трех вариантов на мульти языковую поддержку. Вот строчка из my.ini: default-character-set=utf8 Запустил сервер, запустил клиент mysql.exe из поставки, создал database, в ней таблицу с единственным полем типа CHAR(24). Добавил в таблицу русское слово, затем проверил через SELECT. Слово в консоле отобразилось крякозябрами. Удалил запись, набрал "SET NAMES utf8;", снова добавил ту же запись и проверил - на этот раз всё нормально, русские буквы. А вот в Qt немогу такого же добиться :(. Вот код: Код:
Пробывал q.exec("SET NAMES utf8_general_ci;"); - возвращает false, база не поддерживает видимо. Буду благодарен любому совету ! [/code] Название: Re: Yet another MySQL subject Отправлено: xk от Февраль 27, 2007, 18:50 Проблема так и не решилась :( .
Сменил БД на mysql-5.0.18 - всё то же самое.. спасительный Код:
возвращает false. Может кто-нибудь выслать 100% рабочий код, который корректно работает с кириллицей ? xkurt at inbox dot ru Спасите ! :) Название: Yet another MySQL subject Отправлено: alex12 от Февраль 27, 2007, 22:41 Привет!
Код:
Очевидно дело в \' Я работаю с SQLyog в качестве отладочного средства. Очень удобно. А для Qt использую utf8. Никаких проблем с кодировкой. добавлено спустя 1 минуту: При этом в настройках SQLyog'а -- utf8 Название: Re: Yet another MySQL subject Отправлено: xk от Февраль 28, 2007, 07:07 Вообщем решил проблему хаком.. может это кого-нибудь спасет в будущем...
src\sql\drivers\mysql\qsql_mysql.cpp: // комментим эту строку // QTextCodec* heuristicCodec = QTextCodec::codecForName(mysql_character_set_name(mysql)) // пишем вместо неё эту QTextCodec* heuristicCodec = QTextCodec::codecForName("Windows-1251"); PS: Qt-4.2.0 Название: Yet another MySQL subject Отправлено: crocus от Февраль 28, 2007, 09:05 Код: #ifndef CONNECTION_H_ вызываю Код:
Цитировать QSqlTableModel* model = new QSqlTableModel(this, db); - убери db, если соединение одно устанавливаешь. |