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"...
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 Qt : Sélectionner tout - Visualiser dans une fenêtre à part
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.
Bonne soirée.
Partager