Russian Qt Forum
Ноябрь 23, 2024, 20:01
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Базы данных
>
MySQL, QT3, кириллица. Перепробовал все
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: MySQL, QT3, кириллица. Перепробовал все (Прочитано 5696 раз)
mokynis
Самовар
Offline
Сообщений: 176
MySQL, QT3, кириллица. Перепробовал все
«
:
Октябрь 20, 2008, 09:11 »
Исходные данные: Linux (Ubuntu 7.10), локаль utf8, KDE 3, MySQL 5.0.45, Qt 3.3.7
Создал локальную базу, в ней таблица с текстовым полем. В shell или в Query Brouser кириллица работает нормально: можно записать, можно просмотреть. Имеется программа в Qt с QDataTable, в которую выводится таблица. Вместо кириллицы-что-то типа "билеÑ". Пытаюсь сделать запись из QLineEdit-в таблицу записываются вопросики. Пересмотрел все, что мог в инете.
пробовал:
1) менять my.cnt
[client]
default-character-set=utf8
[mysqld]
default-character-set=utf8
[mysql]
default-character-set = utf8
в текст программы после подключения к базе пробовал написать запрос
QSqlQuery query1;
2)query1.exec("set character set utf8;");
или
3)query1.exec("SET NAMES utf8;");
толку никакого-только в 3 случае содержимое QLineEdit-поля после команды UPDATE отображается в таблице кракозяблами, а во 2-м случае-вопросиками. Запрос
SHOW VARIABLES LIKE '%char%';
выдает
'character_set_client', 'utf8'
'character_set_connection', 'utf8'
'character_set_database', 'latin1'
'character_set_filesystem', 'binary'
'character_set_results', 'utf8'
'character_set_server', 'latin1'
'character_set_system', 'utf8'
'character_sets_dir', '/usr/share/mysql/charsets/'
а между прочим, в , //usr/share/mysql/charsets/ нет utf8.
4)Пробовал и у таблицы, и у текстового поля менять character set-без толку, в запрос вставлять не содержимое Edit-поля, а tr(Edit->text()) - то же самое
5)если пишу не из Edit-поля, а пишу типа
"UPDATE pinigai SET nam='"+QString::fromLocal8Bit("булка")+"' WHERE id=7;"
опять вопросики.
6)если сначала выполняю запрос таким образом
query1.exec(query_str.utf8())
то по крайней мере в Query Brouser кириллица отображается правильно. А в Qt-программе все равно ее нет.
7)И еще что заметил: если после запуска программы пытаюсь редактировать имеющуюся запись и первую запись делаю латинницей, запись проходит удачно и все следующие тоже (только не по-русски). А если первую редакцию пытаюсь сделать кириллицей-не пишет, пока хоть что-нибудь не впишу латинницей. Это действует, только если изменен my.cnf (см. п. 1)
Записан
QT4, Qt5, Qt6 Debian, ArchLinux
crossly
Гость
Re: MySQL, QT3, кириллица. Перепробовал все
«
Ответ #1 :
Октябрь 20, 2008, 11:28 »
QTextCodec....
Записан
mokynis
Самовар
Offline
Сообщений: 176
Re: MySQL, QT3, кириллица. Перепробовал все
«
Ответ #2 :
Октябрь 20, 2008, 13:33 »
УРА!!
Я, похоже, перемудрил. Изменил по совету crossly свой main.cpp (приведу полный текст-вдруг кому пригодится?)
#include <qapplication.h>
#include <qtextcodec.h>
#include "baseform.h"
int main( int argc, char ** argv )
{
QApplication a( argc, argv );
QTextCodec *codec;
codec=QTextCodec::codecForName("utf8");
QTextCodec::setCodecForCStrings(codec);
QTextCodec::setCodecForLocale(codec);
QTextCodec::setCodecForTr(codec);
baseForm w;
w.show();
a.connect( &a, SIGNAL( lastWindowClosed() ), &a, SLOT( quit() ) );
return a.exec();
}
И все! Не нужно править my.cnf, не нужны дополнительные запросы-все сразу заработало, как хотелось.
Тема закрыта.
Записан
QT4, Qt5, Qt6 Debian, ArchLinux
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...