Есть код:
QFile file("1.txt");
file.open(QIODevice::WriteOnly);
По умолчанию создается с кодировкой ANSI, а как программно с помощью QT поменять кодировку файла?
Спасибо
#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;
}