Название: QSettings и utf8 Отправлено: insamo от Январь 19, 2011, 00:16 Код: #include <QSettings> setValue(key,value) - первый параметр пишется крякозябрами а второй нормально, гуру помогите пожалуйста, все уже перерыл, на другие темы этого форума не тыкать, все просотрел ОСЬ winXP, qt 4.7.1 Название: Re: QSettings и utf8 Отправлено: Blackwanderer от Январь 19, 2011, 06:47 В документации написано:
QString converts the const char * data into Unicode using the fromAscii() function. У вас же, судя по всему, исходники в юникоде. Попробуйте так: Код: QString key = QString::fromUtf8("секция/ключ"); Название: Re: QSettings и utf8 Отправлено: insamo от Январь 19, 2011, 08:15 вывод в cats.ini
[%U0441%U0435%U043A%U0446%U0438%U044F] %U043A%U043B%U044E%U0447=валуе Исходники все в utf-8 без bom, ini файл тоже в utf-8 Название: Re: QSettings и utf8 Отправлено: merke от Январь 19, 2011, 08:17 QString key = QString::fromLocal8bit("секция/ключ");
Название: Re: QSettings и utf8 Отправлено: insamo от Январь 19, 2011, 08:47 не помогает, выводит тоже самое
Название: Re: QSettings и utf8 Отправлено: BRE от Январь 19, 2011, 08:53 http://www.prog.org.ru/topic_15983_0.html
Название: Re: QSettings и utf8 Отправлено: insamo от Январь 19, 2011, 08:57 чтение я реализовал, а вот запись увы нет, попросил же не тыкать на темы этого форума
Название: Re: QSettings и utf8 Отправлено: BRE от Январь 19, 2011, 09:23 чтение я реализовал, а вот запись увы нет, попросил же не тыкать на темы этого форума ::)Ну что тут можно еще посоветовать.... Внимательно посмотри предложенную тему и пример. Название: Re: QSettings и utf8 Отправлено: insamo от Январь 19, 2011, 09:28 Код: #include <QtGui/QApplication> сделал по подобию темы что ты мне посоветовал, все равно кракозябры Название: Re: QSettings и utf8 Отправлено: Blackwanderer от Январь 19, 2011, 09:31 вывод в cats.ini [%U0441%U0435%U043A%U0446%U0438%U044F] %U043A%U043B%U044E%U0447=валуе Исходники все в utf-8 без bom, ini файл тоже в utf-8 Это не кракозябры, а запись юникода кодами символов в явном виде. И это скорее не баг, а фича. Название: Re: QSettings и utf8 Отправлено: BRE от Январь 19, 2011, 09:59 и судя по исходникам QSettings, так будут преобразовываться все не латинские ключи.
Можно попробовать сделать свои функции чтения/записи и зарегистрировать свой формат: Format QSettings::registerFormat ( const QString & extension, ReadFunc readFunc, WriteFunc writeFunc, Qt::CaseSensitivity caseSensitivity = Qt::CaseSensitive ) [static] Название: Re: QSettings и utf8 Отправлено: insamo от Январь 19, 2011, 10:04 буду пробовать, где то натыкался на гибрид QSetting и xml, но хотелось бы делать лишние телодвижения
Название: Re: QSettings и utf8 Отправлено: Янковский Александр от Октябрь 25, 2011, 11:18 буду пробовать, где то натыкался на гибрид QSetting и xml, но хотелось бы делать лишние телодвижения insamo, есть результат? Схожая ситуация и у меня. Название: Re: QSettings и utf8 Отправлено: IMPOMEZIA от Октябрь 25, 2011, 14:49 Код: void QSettings::setIniCodec ( const char * codecName ) Название: Re: QSettings и utf8 Отправлено: Янковский Александр от Октябрь 25, 2011, 15:49 Код: void QSettings::setIniCodec ( const char * codecName ) Неа... Не работает... Ситуация следующая. Захотел иметь в программе конфиги в "читабельном" виде, но и в то же время хорошо структурированном. XML прикручивать не захотел, очень велика вероятность ошибки разбора структуры документа при одной небольшой ошибке в синтаксисе. Приглянулась здесь статическая библиотека с классом, реализующим QSettings в формате JSON - очень читабельный формат, структурированный, поддерживается вложенность и т.п.! Сама прога трудится в OpenSUSE 11.4 соответственно с Qt версии 4.7.4. Имя ключа всегда на английском языке, значения могут быть на русском. Вот кусок кода... Код: QtJsonSettings::setIniCodec( "UTF-8" ); А вот результат выполнения кода (файл конфигурации): Цитировать { "SECTION": { "TEST": { "NUMBER_1":"Value", "NUMBER_2":"\u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435" } } } Вот такие вот параметры выставляются до запуска основного цикла приложения Код: QTextCodec* codec = QTextCodec::codecForName( "UTF-8" ); Вот собственно и тема для размышлений... Как сделать, чтобы читабельными были русские символы в конфиге? Название: Re: QSettings и utf8 Отправлено: LisandreL от Октябрь 25, 2011, 18:56 Неа... Не работает... Для результатов в QSettings работает.Вопросы и багрепорты по QtJsonSettings лучше адресовать автору. |