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

Discussion :

[Qt] Encodage UTF-8

  1. #1
    Membre averti
    Homme Profil pro
    Lycéen
    Inscrit en
    Mai 2011
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mai 2011
    Messages : 27
    Par défaut [Qt] Encodage UTF-8
    Bonjour,

    Voilà, j'ai un problème d'encodage sous QtCreator, alors que dans mon interface, dans le menu : Édition/Choisir l'encodage ... , je suis en UTF-8 mais quand j’exécute on programme, j’obtiens ce caractère là : "é" au lieu d'un "é".

    J'ai essayé différente chose comme encoder sous Notepad++ puis transférer sur Qt Creator, modifier l'encodage du projet, mais rien ne marche.

    Je ne vois pas du tout pourquoi, si vous avez la solution, je suis preneur.

    Merci d'avance.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Je suis peut-être à côté de la plaque, mais je crois bien que l'UTF-8, c'est plutôt pour Linux. Si tu codes sous Windows (ce que j'en déduis de ton utilisation de Notepad++), tu devrais plutôt utiliser de l'iso-8859-1 (quoique je code sous Linux pour Linux/Mac/Windows avec des fichiers encodés en UTF-8, et je n'ai pas ce problème...). Tiens-moi au courant!

  3. #3
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    18 258
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 18 258
    Par défaut ça marche pas comme ça
    Bonjour,

    l'UTF-8 est un encodage ( comme uuencode ou base64) permettant d'encoder n'importe quel caractère sur 8bits ( grosso-modo pour les caractères Ascii en dessous de la valeur 127 le code utf-8 correspond au code Ascii, au dessus les 1er bits indiquent le nbre d'octets codant le caractère. Le bloc est donc composé du caractère et de l'info d'encodage http://fr.wikipedia.org/wiki/Utf-8 pour plus d'infos ) l'iso-8859-1 un alphabet ( 1 peu comme le code Ascii), c'est plutôt unicode qui est utilisé maintenant. Les 1er caractères Unicode se confondent aussi avec le code Ascii et probablement avec l'iso-8859-1 .

    Qt utilise Unicode. Donc si tu rentres une chaine dans un QString par exemple,si il n'y a pas d'accents ou de caractères n'étant pas de l'Ascii de base, tout va bien sinon tu te retrouves avec des signes cabalistiques.Tu peux simplement résoudre le problème en mettant ta chaine entre balises HTML exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    QString chaine="<html>à</html>";
    A savoir que dans le cas si dessus, pour respecter le html il aurait fallu mettre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    QString chaine="<html>&agrave;</html>";
    avec le 1er cas ça marche ( du moins chez moi ),par contre je ne sais pas ce que dit Qt à ce sujet ( important en cas de changement de version)

    pour le cas de Qstring tu as les fonctions toUtf8,toAscii te permettant de récuprer le contenudu QString en Ascii pour le dernier cas. Tu as aussi les fonctions réciproques fromUtf8, etc ...

    Attention ce n'est pas QString qui gères le html. Par contre les conteneurs de type QTextedit, QtableWidget le gèrent.

    Tu n'es pas non plus obligé d'utiliser du HTML mais moi je trouve ça pratique.

    Pour Kbo : UTF-8 n'est pas spécifique Linux.
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  4. #4
    Membre Expert

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2009
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

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

    Informations forums :
    Inscription : Mai 2009
    Messages : 1 009
    Par défaut
    Sinon y'a la classe QTextCodec pour changer l'encodage des QString, une petite recherche sur le forum te renseignera.

  5. #5
    Membre averti
    Homme Profil pro
    Lycéen
    Inscrit en
    Mai 2011
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mai 2011
    Messages : 27
    Par défaut
    C'est bon, mon problème est résolu en ayant ajouté ce code dans mon main :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));
        QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8"));
        QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF-8"));

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [DOM] Encodage UTF-8 dans fichier XML et PHP
    Par norkius dans le forum Bibliothèques et frameworks
    Réponses: 7
    Dernier message: 03/01/2007, 15h44
  2. Problème d'affichage avec encodage utf-8
    Par t-die dans le forum Zend
    Réponses: 3
    Dernier message: 04/12/2006, 14h55
  3. [C# 2.0] Comment réaliser un encodage UTF-8 ?
    Par StormimOn dans le forum C#
    Réponses: 2
    Dernier message: 18/10/2006, 10h35
  4. Pb Encodage UTF-8 pour Ooo
    Par Sylvain James dans le forum XMLRAD
    Réponses: 10
    Dernier message: 08/03/2006, 22h28
  5. [WebForms] Encodage, UTF-8 et accents
    Par alexischmit dans le forum Général Dotnet
    Réponses: 4
    Dernier message: 28/04/2004, 12h21

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