[Qt 4.2.3] Как вывести русский текст из файла?

Модератор: Модераторы разделов

Skala
Сообщения: 241
ОС: Gentoo

[Qt 4.2.3] Как вывести русский текст из файла?

Сообщение Skala »

Пишу программу, которая выводит содержимое файлов. Файлы могут быть в разных кодировках (cp1251, utf8,koi8-r).
Беру файл, открываю на чтение, вывожу некую строку - пока что только так: QMessageBox::information(this,"test",QStringTest); - Мне выводится неразбериха. Для самопроверки пробовал безо всяких файлов - QMessageBox::information(this,"test","Русские буквы"); - та же неразбериха.
Как нужно делать правильно? - Переводчик Linguist, думаю, не поможет- кто знает, что в файл могли написать...
Спасибо за внимание.
Спасибо сказали:
Аватара пользователя
elide
Бывший модератор
Сообщения: 2421
Статус: Übermensch
ОС: лялих

Re: [Qt 4.2.3] Как вывести русский текст из файла?

Сообщение elide »

man 3 iconv
слава роботам!
Спасибо сказали:
Skala
Сообщения: 241
ОС: Gentoo

Re: [Qt 4.2.3] Как вывести русский текст из файла?

Сообщение Skala »

elide писал(а):
31.03.2007 17:29
man 3 iconv
Спасибо!
Я так понимаю, приводить нужно в utf?
Спасибо за внимание.
Спасибо сказали:
Аватара пользователя
elide
Бывший модератор
Сообщения: 2421
Статус: Übermensch
ОС: лялих

Re: [Qt 4.2.3] Как вывести русский текст из файла?

Сообщение elide »

приводить надо в то, что у тебя написано в локали.
слава роботам!
Спасибо сказали:
Аватара пользователя
Skladnoy
Сообщения: 90
ОС: Debian

Re: [Qt 4.2.3] Как вывести русский текст из файла?

Сообщение Skladnoy »

А еще есть класс QTextCodec, чтобы не городить обертки вокруг iconv. Сам правда не пробовал с ним работать
The QTextCodec class provides conversions between text encodings
Спасибо сказали:
Аватара пользователя
eduard_pustobaev
Сообщения: 2629
Статус: Ленивец
ОС: Arch/Debian.

Re: [Qt 4.2.3] Как вывести русский текст из файла?

Сообщение eduard_pustobaev »

Skladnoy писал(а):
31.03.2007 20:23
А еще есть класс QTextCodec, чтобы не городить обертки вокруг iconv. Сам правда не пробовал с ним работать
The QTextCodec class provides conversions between text encodings



Для него нужно знать кодировку файла.
Типа так:

Код: Выделить всё

tcodec = QTextCodec::codecForName("Windows-1251");
QString text = tcodec->toUnicode(ar);

(ar - QByteArray)



Ещё можно посмотреть libenca по поводу распознавания кодировки текста.
В дисгармонии со вселенной.
Спасибо сказали:
Skala
Сообщения: 241
ОС: Gentoo

Re: [Qt 4.2.3] Как вывести русский текст из файла?

Сообщение Skala »

eduard_pustobaev писал(а):
31.03.2007 22:35
Для него нужно знать кодировку файла.

Я сделал в комбобоксе выбор кодироки- когда выберет пользователь, то текст будет преобразован.
Спасибо за помощь!
Спасибо за внимание.
Спасибо сказали: