Encodage d'un fichier texte
Bonsoir à tous,
Je souhaite enregistrer un fichier texte sous le codage de caractères "ISO 8859-1/Windows-1952/ANSI" depuis QtQuick. Pour l'exportation des données, je suis obligé de respecter ce codage de caractères (normes à respecter pour l'application).
Jusqu'à là, rien de bien compliqué, car les exemples ne manquent pas...
Cependant, je rencontre une petite difficulté. En effet, le code ci-après, enregistre bien le fichier texte au format ANSI lorsque mes données à enregistrer contiennent un accent (exemple : "J'ai mangé"). Dès que les données ne contiennent pas d'accent (exemple : "aie"), le format du fichier texte passe automatiquement en "UTF-8"... :aie:
Je souhaite forcer l'enregistrement systématique du fichier texte sous le codage de caractères "ISO 8859-1/Windows-1952/ANSI"...
Avez-vous une explication ? En attendant, voici le code d'appel :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
|
#ifndef FILEIO_H
#define FILEIO_H
#include <QObject>
#include <QFile>
#include <QTextStream>
#include <QTextCodec>
#include <QDebug>
class FileIO : public QObject
{
Q_OBJECT
public slots:
bool write(const QString& source, const QString& data)
{
if (source.isEmpty())
return false;
//QFile file(source);
QFile file("out1.txt");
if (!file.open(QFile::WriteOnly | QFile::Text))
return false;
QTextStream out(&file);
out.setCodec(QTextCodec::codecForName("ISO 8859-1"));
//out.setCodec("ISO 8859-1");
out << data;
file.close();
return true;
}
public:
FileIO() {}
};
#endif // FILEIO_H |
Merci de votre aide. :D
Bonne soirée.