crossplatform.ru

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

 
Ответить в данную темуНачать новую тему
> Изменить кодировку файла
Rosster
  опции профиля:
сообщение 9.2.2010, 13:33
Сообщение #1


Студент
*

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

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




Репутация:   0  


Есть код:
QFile file("1.txt");
file.open(QIODevice::WriteOnly);
По умолчанию создается с кодировкой ANSI, а как программно с помощью QT поменять кодировку файла?
Спасибо
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 9.2.2010, 13:59
Сообщение #2


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9656
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

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




Репутация:   94  


Пример программы перекодировщика текстовых файлов:
Раскрывающийся текст
#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;
}
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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




RSS Текстовая версия Сейчас: 19.11.2019, 3:57