Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Изменить кодировку файла
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt Ввод/Вывод, Сеть. Межпроцессное взаимодействие
Rosster
Есть код:
QFile file("1.txt");
file.open(QIODevice::WriteOnly);
По умолчанию создается с кодировкой ANSI, а как программно с помощью QT поменять кодировку файла?
Спасибо
Litkevich Yuriy
Пример программы перекодировщика текстовых файлов:
Раскрывающийся текст
#include <QtCore>
#include <QtDebug>


int main(int argc, char* argv[])
{
    QCoreApplication a(argc, argv);
    
    QString sourceFile, targetFile;
    QStringList list = a.arguments();
    
    if (list.size() < 2)
        return 1;
    
    sourceFile = list.at(1);
    QFile source(sourceFile);
    QFileInfo fi(source);
    
    targetFile = fi.baseName() + "_trget" + "." + fi.completeSuffix();
    QFile target(targetFile);
    

    if (!source.open(QIODevice::ReadOnly | QIODevice::Text))
        return 1;

    if (!target.open(QIODevice::WriteOnly | QIODevice::Text | QIODevice::Truncate))
        return 1;

    QTextStream in(&source);
    QTextCodec *inCodec = QTextCodec::codecForName("IBM866");
    in.setCodec(inCodec);
    
    QTextStream out(&target);
    QTextCodec *outCodec = QTextCodec::codecForName("UTF-8");
    out.setCodec(outCodec);    
        
    
    while (!in.atEnd()) {
        QString line = in.readLine();
        out << line << endl;
    }

    return 0;
}
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2019 IPS, Inc.