Здравствуйте, гость ( Вход | Регистрация )
|
zerling |
13.2.2009, 12:05
Сообщение
#1
|
|
Студент ![]() Группа: Участник Сообщений: 19 Регистрация: 31.10.2008 Из: г.Мытищи Московской обл. Пользователь №: 406 Спасибо сказали: 0 раз(а) Репутация: 0
|
База MySQL 4.1, QT 4.3.4 (под windows)
Нужно читать и записывать в БД русские буквы. Таблицы в базе лежат в кодировке UTF8 (даже специально файлы таблиц посмотрел) На форме таблица заполняется таким образом: (взял из примера в асистенте) После соединения с БД делаю запрос QSqlQuery(QString("set character set КОДИРОВКА;"),db); для того, чтоб из БД читало в заданной кодировке.. пробовал запрос не делать.. Пробовал задавать для кодеков и для БД кодировки UTF8, cp1251 и даже cp866 :-) Ничего не помогает отобразить в таблице русские буквы.. Какие кодеки надо поставить в setCodecForCStrings(), setCodecForTr(), setCodecForLocale() чтоб русские буквы отображались нормально в таблице? |
|
|
|
![]() |
|
Константин |
13.2.2009, 14:25
Сообщение
#2
|
![]() Студент ![]() Группа: Участник Сообщений: 69 Регистрация: 9.2.2009 Пользователь №: 539 Спасибо сказали: 15 раз(а) Репутация: 1
|
а если через гуй? например, mysql-gui-tools.
и обязательно попробуй через sqlbrowser из стандартных примеров Сообщение отредактировал Константин - 18.2.2009, 16:50 |
|
|
|
|
zerling |
18.2.2009, 16:49
Сообщение
#3
|
|
Студент ![]() Группа: Участник Сообщений: 19 Регистрация: 31.10.2008 Из: г.Мытищи Московской обл. Пользователь №: 406 Спасибо сказали: 0 раз(а) Репутация: 0
|
В общем прикол с кодировками так и не решился.
из командной строки запускаю mysql --user -p (ввожу пароль) Даю команду set character set cp866; - консоль ХР по моему работает в cp866 потом делаю select * from table1; показывает русские буквы нормалньно... Когда соединяюсь из QT происходит такая беда: вывод qDebug: код 3f для всех русских букв нормальные коды для цифр для 1 - 31h 2 -32h и английских букв. цифры и буквы нормально печатаются в консоли строка qDebug(q.value(1).toByteArray().toHex()); вроде как с кодировкой не играется и вывод считанных данных в шеснадцатеричном виде не должен зависеть от кодека. toByteArray - представляем результат запроса как массив байтов toHex - получаем шеснадцатеричную строку... По моему данные портятся на уровне библиотеки для работы с БД из QT4 |
|
|
|
zerling Кодировки при работе с MySQL 13.2.2009, 12:05
Litkevich Yuriy я предлагаю делать так (setCodecForCStrings). Поче... 13.2.2009, 13:17
Константин zerling, а в папке с базой (непосредственно в папк... 13.2.2009, 13:22
zerling Цитата(Константин @ 13.2.2009, 13:22) zer... 13.2.2009, 13:52
Константин не торопись с выводами. mysql-gui-tools так и не п... 18.2.2009, 16:51
zerling Цитата(Константин @ 18.2.2009, 16:51) не ... 19.2.2009, 8:51
zerling Решил проблему!! Правда коряво сделал...
В... 19.2.2009, 14:47
Константин зря 19.2.2009, 16:39
zerling Цитата(Константин @ 19.2.2009, 16:39) зря... 20.2.2009, 9:10
Гость_ALex-Annet_* Мне помогло:
QSqlQuery query(db);
query.e... 10.12.2010, 19:51![]() ![]() ![]() |
|
Текстовая версия | Сейчас: 2.2.2026, 8:06 |