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 :

Encodage de caractères


Sujet :

Qt

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Vietnam

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2009
    Messages : 6
    Par défaut Encodage de caractères
    Messieurs bonjour,

    Je me retourne vers la communauté pour un problème qui est actuellement en train de me gâcher mon existence.
    Je m'explique:
    Je suis actuellement en train de développer une application C++/Qt/Mysql pour une entreprise vietnamien. Mon probleme est le suivant:
    Impossible d'afficher correctement les caractères vietnamiens, que je les écrive en dur
    Code : 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
     
     
    this->CreateText("mật khẩu: ", 100,25, 30, 180); // les lettres s'affichent correctement dans mon IDE contrairement a mon post.
     
    QLabel        *CreateAccountWindow::CreateText(QString text, int width, int height, int pos_x, int pos_y)
    {
    	QLabel *label = new QLabel(this);
     
     
    	label->setText(text);
    	label->move(pos_x, pos_y);
    	label->setWordWrap(true);
    	label->setFixedSize(width, height);
    	label->setStyleSheet("QLabel {color:white;}");
    	//label->setFont(font);
    	label->show();
    	return (label);
    }
    Ou encore que je les sorte de ma bdd mysql (dans laquelle ils apparaissent nikel) pour les afficher ou les ecrires dans un fichier.
    J'ai regarde un peu partout sur le net s'il y avait une histoire d'encodage pour mes string, mais rien de ce que j'ai trouve ne fonctionne.


    Help me, Obi-Wan Kenobi. You're my only hope.
    Merci a vous.

  2. #2
    screetch
    Invité(e)
    Par défaut
    Qt utilise unicode 16, il va falloir que tu lui donnes de l'unicode 16 (ou que tu traduises en unicode 16)
    essaye une fonction comme MultiByteToWideChar, ou regarde ici:
    http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx

    (sous linux, utilise iconv)

    en règle générale il va falloir que tu connaisses l'encodage en entrée aussi.
    Qt a aussi sans doute des conversions

  3. #3
    screetch
    Invité(e)
    Par défaut
    quand tu sauras quel encodage tu utilises, tu pourrais utiliser QString::from/Encoding/
    il y a par exemple un QString::fromUtf8

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Vietnam

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2009
    Messages : 6
    Par défaut
    Ok je vais regarder dans ce cote.
    Merci a toi nicolas.

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Vietnam

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2009
    Messages : 6
    Par défaut
    Ok j'ai trouve mon bonheur.
    Pour ceux que ça peut aider, 2 choses donc:
    1. Setter les codecs qt:
      QTextCodec::setCodecForCStrings(QTextCodec::codecForName("utf8"));
      Ça fonctionne avec le texte directement dans le code mais pas pour les données sorties de la bdd.


    1. Il faut donc lancer une requête après la connexion a la base du type:
      mysql_query(conn,"SET NAMES UTF8");


    Merci a tous

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

Discussions similaires

  1. Probleme d'encodage des caractères spéciaux
    Par pacoulitou24 dans le forum Format d'échange (XML, JSON...)
    Réponses: 4
    Dernier message: 20/06/2006, 16h47
  2. Encodage de caractères
    Par Anduriel dans le forum Langage
    Réponses: 13
    Dernier message: 25/04/2006, 18h22
  3. Réponses: 15
    Dernier message: 24/02/2006, 14h17
  4. [FLASH 8] Encodage de caractères...
    Par Xdrei dans le forum Flash
    Réponses: 1
    Dernier message: 24/02/2006, 07h44
  5. encodage de caractères
    Par hugo123 dans le forum Langage
    Réponses: 7
    Dernier message: 25/01/2006, 15h04

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