IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Qt Discussion :

Problème de conversion UTF 8 avec toUtf8()


Sujet :

Qt

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 19
    Par défaut Problème de conversion UTF 8 avec toUtf8()
    Bonjour,

    J'exécute ma compilation en standard (unicode a priori),
    dans un fichier texte j'aimerais écrire en utf-8, car ce fichier sera utilisé par un programme fonctionnant sous utf-8.
    Exemple : à la place de "°" j'aimerais écrire "\xc2\xb0" et à la place de "à" j'aimerai "\xc3\xa0" et ainsi de suite pour tout les caractères spéciaux.
    j'ai donc fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    //exemple pour tester
     
    QString rr = "ref_ur°fr à";
        QFile fich("c:\\test.txt");
         fich.open(QIODevice::WriteOnly | QIODevice::Text );
     
                QTextStream tex(&fich);
                tex.setCodec("UTF-8");
                 tex << rr.toUtf8() <<endl;
                 fich.close();
    Je me retrouve avec "ref_ur°fr Ã*" comme réponse
    J'ai lu dans un autre topic que ce serait dû à Qt4, ce problème n'existant pas sous Qt3.
    Y-a-t-il une solution?
    merci par avance

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    1 874
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 874
    Par défaut
    Si le source est en UTF-8, il faut peut-être ajouter avant l'instanciation de la string:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    QTextCodec::setCodecForCStrings(QTextCodec::codecForName("utf-8"));

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 19
    Par défaut
    Bonjour,
    merci pour ta réponse,
    cependant, maintenant j'ai des "?" à la place des caractères spéciaux,
    Y-a-t-il autre chose à faire?
    merci

  4. #4
    Membre éprouvé
    Avatar de ymoreau
    Homme Profil pro
    Ingénieur étude et développement
    Inscrit en
    Septembre 2005
    Messages
    1 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur étude et développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 154
    Par défaut
    Est-ce que ton QString rr est correct ? Tu as vérifié en l'affichant (avec qDebug() par exp) ?

    Parfois le code source lui même est mal lu par QString, à toi de savoir en quel encodage est écrit ton code source et éventuellement le convertir (directement à la construction!) avec http://qt.developpez.com/doc/latest/...tml#fromlatin1 (pour du latin1) ou une des autres fonctions du même genre. Ce qui je crois peut être automatisé avec ce qu'a posté estofilo juste avant, mais si ton code source n'est pas en Utf-8 il faut appeler la fonction avec l'encodage adéquat.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 19
    Par défaut
    merci pour ta réponse,
    mon projet est en format "system" par défaut, je l'ai passé en "latin 1" mais cela n'a rien changé.
    je n'ai pas réussi à utiliser la fonction debug() pour vérifier, si tu pouvais me donner un exemple ce sera sympa
    j'ai essayé différentes fonctions comme

    QString::fromUtf8 ou
    QTextCodec::setCodecForCStrings(QTextCodec::codecForName("utf-8")) ou
    QObject.toUtf8

    avec le même problème
    il doit y avoir un problème au niveau de ma QString de départ, faudrait que je puisse essayer QDebug()

  6. #6
    Membre confirmé
    Avatar de bobti89
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    86
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 86
    Par défaut
    Alors soit tu passes ton code en utf-8 (plutôt qu'en latin1...) ou tu utilises QString::fromLatin1().

Discussions similaires

  1. [DisplayTag] Problème d'encoding UTF-8 avec export
    Par Fr@ncky dans le forum Taglibs
    Réponses: 19
    Dernier message: 04/06/2015, 08h48
  2. [ZF 1.10] Problème d'encodage UTF-8 avec Zend_Db Mysqli
    Par arnolem dans le forum Zend_Db
    Réponses: 1
    Dernier message: 21/04/2010, 00h12
  3. Problème de conversion utf-8 en ISO
    Par thelpi dans le forum C#
    Réponses: 7
    Dernier message: 05/08/2008, 16h00
  4. problème de conversion UTF -> iso
    Par Empty_body dans le forum Général Java
    Réponses: 15
    Dernier message: 01/08/2008, 16h57
  5. Problème de conversion avec CONVERT
    Par gowser dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 13/12/2005, 16h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo