Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема с отображением символов в файле, Кодировка? 
V
    Опции темы
Lindemann66
  Дата 24.8.2011, 10:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Thinking...
*


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

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



Всем привет!

Такой вопрос
Нужно записать русский текст в кодировке UTF-8 в JSon файл
Для получения JSon использую, собственно, QJson
Вот код
Код

QVariantList changesList;
...
QVariantMap host;
...
host.insert("title", changes[i].title);
...
changesList << host;
...
QString json = QString(serializer.serialize(hostLinks));
QFile file(filename);
if (!file.open(QIODevice::WriteOnly | QIODevice::Text)) {
    QMessageBox::warning(0, QObject::tr("File error"), QObject::tr("NewLinks file create error!"));
    return;
}
QTextStream out(&file);
out << json;
file.close();


changes[i].title - в данном случае содержит русский текст в UTF-8

так вот, при выполнении указанных операций в файл вместо руского текста записывается строка вида
Цитата

...C:/Users/\u0410\u043b\u0435\u043a\u0441\u0435\u0439/AppData/Roaming...


То есть, откуда-то берутся символы \u0410\u043b\ и т.д.

Кто-нибудь сталкивался с таким? Где-то нужно сделать обратное преобразование кодировки, или дело в QJson?

Буду благодарен за лобые советы
--------------------
stay true
PM MAIL WWW ICQ   Вверх
_GRIN_
Дата 26.8.2011, 12:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


одинокий падаван
**


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

Репутация: 6
Всего: 7



Lindemann66,  в какой кодировке ты просматриваешь файл? (по идее \u0410\u043b\u0435\u043a\u0441\u0435\u0439 это "алексей" в юникоде)



--------------------
Дорогу осилит идущий
PM MAIL Skype   Вверх
spyswamp
Дата 26.8.2011, 19:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Попробуй QString делать из wchar'а: QString::fromStdWString(L"Валюта") например. По крайней мере, в GUI под Linux это решило вообще все проблемы с отображением русских строк.

И обязательно потом отпишись, как решишь проблему.


--------------------
- why you call it beta?
- cuz it's betta then nothin'
PM MAIL   Вверх
Lindemann66
Дата 26.8.2011, 22:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Thinking...
*


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

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



Спасибо за ответыsmile

Цитата(_GRIN_ @  26.8.2011,  12:36 Найти цитируемый пост)
по идее \u0410\u043b\u0435\u043a\u0441\u0435\u0439 это "алексей" в юникоде

да, это я для примера взялsmile

Проблема, кстати, решилась
Там, где файл принимается, строка 
Цитата(Lindemann66 @  24.8.2011,  10:44 Найти цитируемый пост)
u0410\u043b\u0435\u043a\u0441\u0435\u0439

оказывается, преобразуется в "Алексей" корректно

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

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

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


 




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


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

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