Russian Qt Forum

Qt => Интернационализация, локализация => Тема начата: NoT от Ноябрь 18, 2010, 17:58



Название: Кодировка кириллице в win и dos
Отправлено: NoT от Ноябрь 18, 2010, 17:58
Доброго времени.
есть файл, в котором есть русский текст. кодировка предположительно dos-ая. По крайней мере в фаре читабельный вид файл имеет именно в dos кодировке.
Текст из файла помещаю в QTextEdit. Предварительно меняю кодировку в потоке который все это дело пишет.
Код:
QBuffer buffer;
    buffer.open(QIODevice::ReadWrite);
    QTextStream out(&buffer);
    out << ui->LasResult->toPlainText();
    buffer.seek(0);
    ui->LasResult->clear();
    QTextStream in(&buffer);
    in.setCodec(QTextCodec::codecForName("IBM866"));
    while (!in.atEnd())
    {
        QString line = in.readLine();
        ui->LasResult->append(line);
    }
Но вот проблемка. в итоге все равно получаются крокозябры.
Или быть может нужно менять кодировку потока который считывает?
Да и собственно какие кодировки то нужно использовать? Быть может все дело в том что я не правильные кодировки использую.


Название: Re: Кодировка кириллице в win и dos
Отправлено: Пантер от Ноябрь 18, 2010, 18:11
Что-то ты ерунду пишешь.
Код
C++ (Qt)
QFile file ("file.txt");
file.open (QIODevice::ReadOnly);
QTextStream stream (&file);
stream.setCodec ("CP866");
ui->LasResult->setPlainText (stream.readAll ());
 
Данный код упрощен.


Название: Re: Кодировка кириллице в win и dos
Отправлено: NoT от Ноябрь 18, 2010, 20:01
Может выразился не правильно. Текст из файла прочитал и записал в едит. Вижу что кодировка не та. Копирую текст из эдита в буфер там меняю коировку и пишу обратно.
Подозреваю что в этом то и не прав.
Если при чтении из файла указать  досовскую кодировку сразу, то крокозябров нет. но я ведь не телепат что значит заранее что файл в досовской кодировке, а не в виндовской.


Название: Re: Кодировка кириллице в win и dos
Отправлено: Пантер от Ноябрь 18, 2010, 20:15
Хм. Интересно. Тогда при сохранении в буфер указывай кодировку, в которой читал.


Название: Re: Кодировка кириллице в win и dos
Отправлено: NoT от Ноябрь 18, 2010, 20:28
Точно. Заработало. Спасибо.