crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> Вывод ASCII текста в QTextEdit
XXL
  опции профиля:
сообщение 17.12.2009, 23:40
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 30
Регистрация: 26.4.2009
Пользователь №: 708

Спасибо сказали: 0 раз(а)




Репутация:   0  


Доброго вечера и ночи)
Давно на мне висит проблема вывода строк из вне в QTextEdit в нормальном виде. От некоторой внешней программы получаю строки strText вида Ко... и т.д. Я так понимаю, это ASCII. При использовании функции setHtml(strText) кириллические символы отображаются нормально. Однако при использовании setText(strText) и setPlainText(strText) выводятся строки приведенного выше вида. Подскажите, как правильно перекодировать строки такого вида для нормального отображения в текстовом поле...QString::fromAscii(...)?

Большущее спасибо)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
frg10
  опции профиля:
сообщение 18.12.2009, 14:50
Сообщение #2


Студент
*

Группа: Участник
Сообщений: 47
Регистрация: 8.11.2009
Из: Ростов-на-Дону
Пользователь №: 1213

Спасибо сказали: 5 раз(а)




Репутация:   2  


Если вы на вход получаете char* (т.е. не wchar_t*), то нужно перекодировать строчку в юникод. Для этого нужно знать кодировку исходной строки. Для windows делается примерно так:
#include <QtCore/QTextCodec>
....
char* sourceText = ....;
QTextCodec* codec = QTextCodec::codecForName("Windows-1251");
edit.setPlainText( codec->toUnicode(sourceText) );


Смотрите в асситанте доки по QTextCodec, если что-то непонятно.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
azure
  опции профиля:
сообщение 25.12.2009, 16:25
Сообщение #3


Студент
*

Группа: Участник
Сообщений: 60
Регистрация: 24.12.2009
Пользователь №: 1332

Спасибо сказали: 5 раз(а)




Репутация:   0  


Цитата(XXL @ 17.12.2009, 22:40) *
Я так понимаю, это ASCII. При использовании функции setHtml(strText) кириллические символы отображаются нормально. Однако при использовании setText(strText) и setPlainText(strText) выводятся строки приведенного выше вида. Подскажите, как правильно перекодировать строки такого вида для нормального отображения в текстовом поле...QString::fromAscii(...)?

Большущее спасибо)


ASCII и кириллические символы - непересекающиеся множества. ASCII - определяет первые 128 символов, кириллические определены дальше. Куте пользует QString, по-моему, для используемых вами объектов. QString - хранит в себе юникод. Это правильно. Вам же нужно сделать преобразование из кодировки ваших файлов в юникод (думаю, что вам должно помочь вот это: QString::fromLocal8Bit)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 19.4.2024, 17:07