Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [Qt] кодировка в MySQL, Latin1 
:(
    Опции темы
aliks
Дата 20.5.2009, 17:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 146
Регистрация: 17.12.2008

Репутация: нет
Всего: 1



Поискал в инете и на форуме, однако решение предложенные не помогают.

База в кодировке Latin1, по факту там записано CP1251. При подключении пишу SET NAMES Latin1

Исходники в Qt используют кодировку UTF8. Перебровал разные варианты с кодеками, выводится то знаки вопросов, то кракозябры, помогите правильно решить проблемку, а то совсем уже заблудился
--------------------
Любимая кнопка - F1, Любимое спасибо - Плюс в репутацию
PM MAIL Jabber   Вверх
ecspertiza
Дата 21.5.2009, 08:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 763
Регистрация: 3.11.2008
Где: г.Смоленск

Репутация: 4
Всего: 5



вот попробуй в mail.cpp прописать

Код

    QTextCodec * myTextCodec = QTextCodec::codecForName("UTF-8");

    QTextCodec::setCodecForTr( myTextCodec );
    QTextCodec::setCodecForCStrings( myTextCodec );



--------------------
С уважением,
мастер конфетного цеха!

онлайн компилер
залип
PM MAIL   Вверх
aliks
Дата 21.5.2009, 08:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 146
Регистрация: 17.12.2008

Репутация: нет
Всего: 1



Такой вариант я уже пробовал, но не помогло.

Проблему решил другим способом. Везде: в базе, на таблицах выставил кодировку UTF8 и все стало ОК.
--------------------
Любимая кнопка - F1, Любимое спасибо - Плюс в репутацию
PM MAIL Jabber   Вверх
aliks
Дата 25.5.2009, 16:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 146
Регистрация: 17.12.2008

Репутация: нет
Всего: 1



Ну это прямо какое то колдовство какое то. С чтением вроде бы разобрался, а вот с записью опять проблема с кодировкой.
Пишет в бащу в крокозаябрах или вопросиках, помогите пожалуйста с кодировкой. Этот же кусок программы написал в Jave - все работает ОК. А вот с Qt уже вторую неделю мучаюсь.

И при редактировании данных из TableView и при записи напрямую из sql - базу пишутся крокозябры, хотя на форме отображаются нормально

Код

    //Чтение - ОК
    QTextCodec::setCodecForCStrings(codecCP1251);
    QSqlQuery sql("",db);
    sql.exec("SET NAMES 'Latin1'");
    sql.exec( "SELECT * FROM "+ui.treeWidget->currentItem()->text(0) 
    QSqlTableModel *model = new QSqlTableModel(this,db);
    model->setTable(ui.treeWidget->currentItem()->text(0));
    model->setEditStrategy(QSqlTableModel::OnRowChange);
    model->select();


    //Запись
    QString a = "Привет";
    QByteArray tmp =a.toLatin1();
           //QByteArray tmp1 = codecLatin1->fromUnicode(a); //a.toUtf8();
           //QByteArray tmp2 = "Привет";
           //QString str = codecLatin1->fromUnicode(tmp1);


    sql.exec("SET NAMES 'Latin1'");
    sql.prepare("UPDATE SP_Departments SET name='"+tmp+"' where id=1");


Как видите, перепробовал различные варианты - но пока без результата
--------------------
Любимая кнопка - F1, Любимое спасибо - Плюс в репутацию
PM MAIL Jabber   Вверх
ecspertiza
Дата 26.5.2009, 07:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 763
Регистрация: 3.11.2008
Где: г.Смоленск

Репутация: 4
Всего: 5



А можешь написать сдесь запрос которым ты базу создавал.


--------------------
С уважением,
мастер конфетного цеха!

онлайн компилер
залип
PM MAIL   Вверх
aliks
Дата 26.5.2009, 09:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 146
Регистрация: 17.12.2008

Репутация: нет
Всего: 1



CREATE TABLE krimsekt.SP_Departments (
  id INT(11) AUTO_INCREMENT,
  name VARCHAR(64) NOT NULL,
  CurrentAcc_id INT(11) NOT NULL DEFAULT 0,
  AccHomeFolder INT(11) NOT NULL DEFAULT 0,
  PRIMARY KEY (id)
)
ENGINE = MYISAM
AUTO_INCREMENT = 39
CHARACTER SET utf8 COLLATE utf8_bin;

--------------------
Любимая кнопка - F1, Любимое спасибо - Плюс в репутацию
PM MAIL Jabber   Вверх
ecspertiza
Дата 26.5.2009, 10:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 763
Регистрация: 3.11.2008
Где: г.Смоленск

Репутация: 4
Всего: 5



Это создание таблици, а я тебе про создание самой базы.

Код

CREATE DATABASE `my_db` CHARACTER SET utf8 COLLATE utf8_general_ci;


тебе вот как то так нужно было создавать чтобы проблем не возникало, база данных должна всегда создаваться в кодировке utf8 но это ИМХО.


--------------------
С уважением,
мастер конфетного цеха!

онлайн компилер
залип
PM MAIL   Вверх
aliks
Дата 26.5.2009, 13:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 146
Регистрация: 17.12.2008

Репутация: нет
Всего: 1



Ну базу создавал не я, а как сейчас можно победить это?
--------------------
Любимая кнопка - F1, Любимое спасибо - Плюс в репутацию
PM MAIL Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets"
JackYF
Любитель
  • В заголовке темы в квадратных скобках обозначьте используемую вами библиотеку, например: [QT],[GTK],[wx].
  • Если вопрос актуален только для некоторой версии библиотеки, либо, если вы пользуетесь не самой последней версией, укажите это. Например: [QT4], [GTK2].
  • Все начинающие изучать Qt - не забудьте зайти сюда.
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • В вопросе укажите полную версию версию библиотеки, а также все дополнительные используемые программные пакеты.
  • Не забывайте пользоваться кнопкой "Код".
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к тематике этого раздела. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема »


 




[ Время генерации скрипта: 0.0809 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.