Russian Qt Forum

Qt => Общие вопросы => Тема начата: Chu от Июль 05, 2016, 12:26



Название: Запись русского текста из QTextEdit в файл
Отправлено: Chu от Июль 05, 2016, 12:26
Записываю в файл русский текст из QTextEdit
Код:
QTextCodec *codec = QTextCodec::codecForName("Windows-1251");
    file.write(codec->fromUnicode(ui->textEdit_logModems->toPlainText()));
    file.close();
Открываю файл и вижу, что вместо заглавных букв и буквы 'я' непонятные символы.
Цитировать
12:12:39 - ”стройство подключено
12:12:40 - ѕодано напр¤жение на все модемы
12:12:40 - «апущена внешн¤¤ программа проверки JTAG-цепи
12:12:46 - ќбнаружено 1 модемов
12:12:46 -  оличество модемов не достаточное дл¤ тестировани¤
12:12:46 - Ќапр¤жение со всех модемов успешно сн¤то
12:12:46 - ѕроверка остановлена. ”стройство отключено
В QTextEdit они отображаются как надо:
Цитировать
12:12:39 - Устройство подключено
12:12:40 - Подано напряжение на все модемы
12:12:40 - Запущена внешняя программа проверки JTAG-цепи
12:12:46 - Обнаружено 1 модемов
12:12:46 - Количество модемов не достаточное для тестирования
12:12:46 - Напряжение со всех модемов успешно снято
12:12:46 - Проверка остановлена. Устройство отключено
12:12:46 - Лог записан в файл
Как исправить?





Название: Re: Запись русского текста из QTextEdit в файл
Отправлено: GraninDm от Июль 05, 2016, 12:39
Вот это не поможет?
http://stackoverflow.com/questions/26803384/qt-5-encoding-problems-utf-8-windows-1250-windows-1251 (http://stackoverflow.com/questions/26803384/qt-5-encoding-problems-utf-8-windows-1250-windows-1251)


Название: Re: Запись русского текста из QTextEdit в файл
Отправлено: kambala от Июль 05, 2016, 12:41
на всякий случай проверь еще через hex editor что там реально записано


Название: Re: Запись русского текста из QTextEdit в файл
Отправлено: Chu от Июль 05, 2016, 15:33
на всякий случай проверь еще через hex editor что там реально записано
Спасибо! Проверил в HEX-editor, в нём всё было правильно. Потом открыл файл в блокноте, и в нём  оказалось все правильно!
До этого открывал файл в Notepad++, в котором видимо была установлена какая-то странная кодировка. Переключил в нём кодировку на windows-1251, проблема ушла.
kambala, спасибо!