Название: Qt 4.1.3 + MySQL Отправлено: Krow от Сентябрь 19, 2007, 13:11 проблема опять таки в кодировках MySQL.
кодировка СУБД utf8. все кодировки настроены на utf8. а при отображении в QTableView QSqlTableModel кириллица отображается всё равно вопросами. в main.cpp написал: Код: QTextCodec *codec=QTextCodec::codecForName("utf8"); Код: query.exec ("SET NAMES utf8_general_ci"); форум читал, так что в поиск не стоит отправлять. Название: Re: Qt 4.1.3 + MySQL Отправлено: crocus от Сентябрь 19, 2007, 14:10 Ну если ты думаешь, что у тебя кодировка "utf8" - это еще не значит что так оно и есть. Уверен на 99,9% что ср1251. ;)
Название: Re: Qt 4.1.3 + MySQL Отправлено: Krow от Сентябрь 19, 2007, 14:35 Ну если ты думаешь, что у тебя кодировка "utf8" - это еще не значит что так оно и есть. Уверен на 99,9% что ср1251. ;) каким тогда образом проверить?я ставил базу на cp1251, кодеки ставил на виндовую кодировку, то же самое получается.. забыл сказать что вся эта констукция работает в лине, а когда в винду начал переводить так возникли проблемы. в лине естественно юникод. Название: Re: Qt 4.1.3 + MySQL Отправлено: Dodge от Сентябрь 19, 2007, 14:57 Ну если ты думаешь, что у тебя кодировка "utf8" - это еще не значит что так оно и есть. Уверен на 99,9% что ср1251. ;) очень информативный ответ... иногда лучше живать чем ... писать. ;) to аффтар: проверьте еще раз натройки кодировки в субд и попробуйте создать таблицу с кирилическими символами из своего приложения, потом естестно его прочитат из тогоже приложения. Название: Re: Qt 4.1.3 + MySQL Отправлено: VZ от Сентябрь 19, 2007, 15:00 Код: QTextCodec *codec=QTextCodec::codecForName("utf8"); Цитировать Код: query.exec ("SET NAMES utf8_general_ci"); должно быть что-то вроде "Unknown character set: 'utf8_general_ci'" ;) Нужно было Код: query.exec ("SET NAMES utf8"); Название: Re: Qt 4.1.3 + MySQL Отправлено: Krow от Сентябрь 19, 2007, 15:13 Ну если ты думаешь, что у тебя кодировка "utf8" - это еще не значит что так оно и есть. Уверен на 99,9% что ср1251. ;) очень информативный ответ... иногда лучше живать чем ... писать. ;) to аффтар: проверьте еще раз натройки кодировки в субд и попробуйте создать таблицу с кирилическими символами из своего приложения, потом естестно его прочитат из тогоже приложения. пробовал даже насильно кодировать в юникод toUtf8() методом... не помогает... где проверить нужно ещё??? Название: Re: Qt 4.1.3 + MySQL Отправлено: Krow от Сентябрь 19, 2007, 15:16 Код: QTextCodec *codec=QTextCodec::codecForName("utf8"); Цитировать Код: query.exec ("SET NAMES utf8_general_ci"); должно быть что-то вроде "Unknown character set: 'utf8_general_ci'" ;) Нужно было Код: query.exec ("SET NAMES utf8"); по второму.. делал так же как и ты советуешь, но насколько я читал такое рабоает тока в винде, а так как я писал должно работать на всех платформах... ошибку.... гляну... Название: Re: Qt 4.1.3 + MySQL Отправлено: crocus от Сентябрь 19, 2007, 15:27 Некоторые версии/библиотеки MySQL некорректно работают с кириллицей/кодировкой?, например, libmysqld.dll от 4.1.22 - так и не получилось подружить с русским.
Название: Re: Qt 4.1.3 + MySQL Отправлено: Dodge от Сентябрь 19, 2007, 15:29 Вспомнил еще одну вещ, в одном из проектах(тож кроссплатформенный), я сразу после коннекта, делал приблизительно следующий sql запрос: PRAGMA encoding = "UTF-8". я уже не помню для чего и как, но мне это в свое время помогло.
Единственное отличие, субд у меня было - pstgresql. Название: Re: Qt 4.1.3 + MySQL Отправлено: Krow от Сентябрь 19, 2007, 15:38 Некоторые версии/библиотеки MySQL некорректно работают с кириллицей/кодировкой?, например, libmysqld.dll от 4.1.22 - так и не получилось подружить с русским. у меня 5.0.23ошибки на set names не выдаёт, проверил.... Название: Re: Qt 4.1.3 + MySQL Отправлено: Krow от Сентябрь 19, 2007, 15:42 Вспомнил еще одну вещ, в одном из проектах(тож кроссплатформенный), я сразу после коннекта, делал приблизительно следующий sql запрос: PRAGMA encoding = "UTF-8". я уже не помню для чего и как, но мне это в свое время помогло. не помогло... Единственное отличие, субд у меня было - pstgresql. Название: Re: Qt 4.1.3 + MySQL Отправлено: crocus от Сентябрь 19, 2007, 15:51 Попробуй подключится к базе с помощью менеджера, например, SQLyog (я им пользуюсь), при подключении выбери кодировку и посмотри что получилось, если читабельно - значит угадал и тогда копай свой код.
Название: Re: Qt 4.1.3 + MySQL Отправлено: Krow от Сентябрь 19, 2007, 16:02 Попробуй подключится к базе с помощью менеджера, например, SQLyog (я им пользуюсь), при подключении выбери кодировку и посмотри что получилось, если читабельно - значит угадал и тогда копай свой код. спасиб. щас проверю.. на всякий случай меняю версию мускула... мжет в нём дело.. Название: Re: Qt 4.1.3 + MySQL Отправлено: VZ от Сентябрь 19, 2007, 18:05 по второму.. делал так же как и ты советуешь, но насколько я читал такое рабоает тока в винде, а так как я писал должно работать на всех платформах... тебя обманули. или ты сам обманулся. у нас работает и в win и в lin и в разных сочетаниях.ошибку.... гляну... зависит только от версии сервера, но как я понял у тебя подходящая версия. Название: Re: Qt 4.1.3 + MySQL Отправлено: Krow от Сентябрь 20, 2007, 07:28 по второму.. делал так же как и ты советуешь, но насколько я читал такое рабоает тока в винде, а так как я писал должно работать на всех платформах... тебя обманули. или ты сам обманулся. у нас работает и в win и в lin и в разных сочетаниях.ошибку.... гляну... зависит только от версии сервера, но как я понял у тебя подходящая версия. Название: Re: Qt 4.1.3 + MySQL Отправлено: Krow от Сентябрь 20, 2007, 08:37 Ну если ты думаешь, что у тебя кодировка "utf8" - это еще не значит что так оно и есть. Уверен на 99,9% что ср1251. ;) думаю ты прав в том что там не юникод...но и не cp1251 возможно Latin1... но почему она не меняется установкой кодека????? Название: Re: Qt 4.1.3 + MySQL Отправлено: crocus от Сентябрь 20, 2007, 09:39 Вероятно меняется ;D, да только серверу все равно, какие символы вопросиками забивать, если кодировка не подходит.
Сделай дамп всей базы -открой продвинутым редактором файлов(под виндой)-сконвертируй весь файл в юникод (или ср1251) и восстанови базу, смысл в том чтоб ты мог нормально читать файл по-русски в сохраненой кодировке потому, что если просто sql кракозябрами, то и в базе будет лабуда. Название: Re: Qt 4.1.3 + MySQL Отправлено: Krow от Сентябрь 20, 2007, 10:27 Вероятно меняется ;D, да только серверу все равно, какие символы вопросиками забивать, если кодировка не подходит. открывал программой SQLyog.. проверил. в СУБД всё в UTF-8.... прям оттуда менял данные. через командную строку видно что там utf-8... а в программе всё равно вопросы...Сделай дамп всей базы -открой продвинутым редактором файлов(под виндой)-сконвертируй весь файл в юникод (или ср1251) и восстанови базу, смысл в том чтоб ты мог нормально читать файл по-русски в сохраненой кодировке потому, что если просто sql кракозябрами, то и в базе будет лабуда. тут у меня возник вопрос.... а какой движок по дефолту используется в мускуле? может в этом ещё дело.. хотя я сомневаюсь... Название: Re: Qt 4.1.3 + MySQL Отправлено: Krow от Сентябрь 22, 2007, 19:00 я вот тут подумал.. а не может ли эта проблема быть в самой кути под вынь?? версия как никак 4,1,3 под 2005 MSVS... кто чо думает? просо качать 40 метров из сети для меня не очень комфортно.. поэтому интересуюсь у вас, в этом может быть проблема???
|