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.