Название: Проблема с кодировкой при считывании из QSettings в QString Отправлено: lighting от Май 04, 2010, 16:16 Сохраняю некоторые строки в QSettings, по совету кого-то с этого форума для получения читаемого файла ini использую кодировку windows-1252. В файл пишется все нормально, но когда я считываю из из ini файла обратно в QString получаются какие-то кракозябли вида Êóëüøà Åâãåíèé Âàñèëüåâè÷.
Подскажите каким образом преобразовать их обратно к читаемому виду. Кусок кода, в котором данные считываются обратно вот: Код
Название: Re: Проблема с кодировкой при считывании из QSettings в QString Отправлено: GreatSnake от Май 04, 2010, 16:21 Попробуй
currentContact.setName(settings.value("Name").toString().toLocal8Bit()); Название: Re: Проблема с кодировкой при считывании из QSettings в QString Отправлено: lighting от Май 04, 2010, 16:27 не помогло, только кракозябли другими стали. toLatin1 также не помогло.
Название: Re: Проблема с кодировкой при считывании из QSettings в QString Отправлено: garryHotDog от Май 04, 2010, 17:24 вот, должно помочь:
Код
и QSettings можно использовать без beginGroup: Код
Название: Re: Проблема с кодировкой при считывании из QSettings в QString Отправлено: lit-uriy от Май 04, 2010, 18:07 >>settings.setIniCodec(INI_CODEC_NAME);
попробуй установить явно QTextCodec, у меня работает garryHotDog, установка кодеков, что ты привёл ни как не влияет на работу QSettings. Мало того кодек не правильный. Название: Re: Проблема с кодировкой при считывании из QSettings в QString Отправлено: garryHotDog от Май 04, 2010, 18:09 Цитировать установка кодеков, что ты привёл ни как не влияет на работу QSettings. Мало того кодек не правильный. у меня работает на Xp,Vista,W7, Ubuntu, CentOS...Название: Re: Проблема с кодировкой при считывании из QSettings в QString Отправлено: lit-uriy от Май 04, 2010, 18:22 а ты кодировку файла сделай, как у автора поста - 1252 (не 1251) и проверь ;)
Название: Re: Проблема с кодировкой при считывании из QSettings в QString Отправлено: garryHotDog от Май 04, 2010, 18:50 ааа теперь понял, так может изначально лучше поставить 1251 и не парится!? ;D
Название: Re: Проблема с кодировкой при считывании из QSettings в QString Отправлено: lighting от Май 04, 2010, 22:08 Цитировать попробуй установить явно QTextCodec, у меня работает Вот так?Код У меня не заработало - никаких изменений я не заметил. Цитировать так может изначально лучше поставить 1251 и не парится!? Оно конечно лучше, но вот в такой кодировке QSettings пишет ??????? вместо русских символов в Ini файл, а 1252 пишет вполне читаемый файл.Название: Re: Проблема с кодировкой при считывании из QSettings в QString Отправлено: lit-uriy от Май 04, 2010, 23:48 >>INI_CODEC_NAME = "windows-1252";
обрати внимание: ты пишешь с маленькой буквы. Может в этом причина? Название: Re: Проблема с кодировкой при считывании из QSettings в QString Отправлено: p166 от Май 05, 2010, 08:58 А может все таки "windows-1251"?
Название: Re: Проблема с кодировкой при считывании из QSettings в QString Отправлено: lighting от Май 05, 2010, 10:49 мои извинения всем принявшим участие в этой теме - проблема была в том что когда-то давно я добавил строку
main.cpp Код с этим и были связаны проблемы при отображении. Теперь насущной осталась только проблема с QSettings, который не создает читаемые ini файлы в кодировке 1251. Название: Re: Проблема с кодировкой при считывании из QSettings в QString Отправлено: lit-uriy от Май 05, 2010, 12:00 так, давай сначала решим, в какой кодировке файл:
Windows-1251 или всё же Windows-1252 ? Название: Re: Проблема с кодировкой при считывании из QSettings в QString Отправлено: lighting от Май 05, 2010, 13:59 еще раз мои извинения - проблемы с кодировкой в файле видимо так-же были вызваны тем что в main.cpp была выставлена другая кодировка. Во всяком случае сейчас в файл все также пишется нормально.
Название: Re: Проблема с кодировкой при считывании из QSettings в QString Отправлено: garryHotDog от Май 05, 2010, 15:59 это называется магия ;D
|