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 :

Affichage des caractères Unicode


Sujet :

Qt

  1. #1
    Candidat au Club
    Inscrit en
    Juin 2010
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 8
    Points : 4
    Points
    4
    Par défaut Affichage des caractères Unicode
    Salut
    Je dois écrire une application Qt en utilisant l'alphabet n'ko (http://en.wikipedia.org/wiki/N%27ko). Qt supporte l'alphabet selon la doc.
    J'ai écrit donc un simple button sous Ubuntu, et tout fonctionne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    #include <QtGui>
     
    int main(int argv, char **args)
    {
        QApplication app(argv, args);
        QPushButton button(QObject::trUtf8("\u07d2\u07de\u07cf"));
     
        QObject::connect(&button, SIGNAL(clicked()), qApp, SLOT(quit()));
        button.show();
     
        return app.exec();
    }
    Malheureusement, quand je porte l'application sous Windows Xp, j'obtiens des carrés.
    Quelqu'un a-t-il une idée ???

  2. #2
    Membre expérimenté

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

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

    Informations forums :
    Inscription : Mai 2009
    Messages : 1 009
    Points : 1 738
    Points
    1 738
    Par défaut
    L'encodage par défaut n'est pas l'UTF-8 sous Windows, donc il faut le changer.

    http://qt.developpez.com/faq/?page=m...tring-encodage

    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
    #include <QtGui>
    #include <QTextCodec>
     
    int main(int argv, char **args)
    {
        QApplication app(argv, args);
        QTextCodec::setCodecForCStrings ( QTextCodec::codecForName ( "UTF-8" ) );
     
        QPushButton button(QObject::trUtf8("\u07d2\u07de\u07cf"));
     
        QObject::connect(&button, SIGNAL(clicked()), qApp, SLOT(quit()));
        button.show();
     
        return app.exec();
    }

  3. #3
    Candidat au Club
    Inscrit en
    Juin 2010
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 8
    Points : 4
    Points
    4
    Par défaut
    Aïe !!!
    malheureusement ça ne marche pas. J'obtiens toujours les mêmes carrées noirs. Question stupide : est-ce dû au fait que je travaille sous Windows XP ?
    Pourtant, avec firefox par exemple, en installant les polices truetype suivantes :
    http://kanjamadi.com/kanjamadi1.ttf
    http://kanjamadi.com/Kanjamadi.ttf
    j'arrive à lire l'alphabet (http://kanjamadi.com).
    Je suis toujours preneur d'autres idées !!!!

  4. #4
    Membre expérimenté

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

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

    Informations forums :
    Inscription : Mai 2009
    Messages : 1 009
    Points : 1 738
    Points
    1 738
    Par défaut
    Tes codes sont sur 2 octets, ça ressemble plutôt à de l'Utf-16 donc... Déjà ça dépend du compilateur (j'avais Visual => des ? à la place des carrés noirs, et j'ai réessayé avec MinGW ensuite pour avoir la même chose que toi). Y'a du mieux avec :
    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
    #include <QtGui>
    #include <QTextCodec>
     
    int main(int argv, char **args)
    {
        QApplication app(argv, args);
        QTextCodec::setCodecForTr ( QTextCodec::codecForName ( "UTF-16" ) );
     
        QPushButton button(QObject::tr("\u07d2\u07de\u07cf"));
     
        QObject::connect(&button, SIGNAL(clicked()), qApp, SLOT(quit()));
        button.show();
     
        return app.exec();
    }

  5. #5
    Candidat au Club
    Inscrit en
    Juin 2010
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 8
    Points : 4
    Points
    4
    Par défaut
    Il y a du mieux certes !
    J'obtiens à la place des carrés noirs des carrés blancs. Est-ce dû à un problème de police ? Est-ce dû à Windows Xp ?

  6. #6
    Membre expérimenté

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

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

    Informations forums :
    Inscription : Mai 2009
    Messages : 1 009
    Points : 1 738
    Points
    1 738
    Par défaut
    Ah, moi j'avais des caractères chinois Bon après quelques recherches ça devrait marcher juste avec ton premier code. La doc dit bien support N'ko : http://qt-project.org/doc/qt-4.8/int...alization.html mais apparemment ce n'est pas le cas (si tu essayes d'autres caractères unicode, ils fonctionnent). Bug ?

  7. #7
    Candidat au Club
    Inscrit en
    Juin 2010
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 8
    Points : 4
    Points
    4
    Par défaut
    d'autres idées ????
    Existe-t-il d'autres forums Qt (en anglais par exemple) pour toucher un large public ????

Discussions similaires

  1. Affichage des caractères spéciaux
    Par Mister Nono dans le forum Langage
    Réponses: 1
    Dernier message: 16/01/2007, 15h46
  2. Affichage des caractères
    Par Wilvart dans le forum C++
    Réponses: 2
    Dernier message: 24/04/2006, 13h28
  3. Réponses: 10
    Dernier message: 31/03/2006, 20h46
  4. problème avec l'affichage des caractères spéciaux
    Par michelkey dans le forum Général Python
    Réponses: 4
    Dernier message: 19/08/2005, 08h09
  5. Problème d'affichage des caractères accentués
    Par ostaquet dans le forum JBuilder
    Réponses: 1
    Dernier message: 10/03/2005, 06h58

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