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

GTK+ avec C & C++ Discussion :

cairomm gtkmm caractères spéciaux ds string


Sujet :

GTK+ avec C & C++

Vue hybride

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

    Informations forums :
    Inscription : Octobre 2010
    Messages : 30
    Par défaut cairomm gtkmm caractères spéciaux ds string
    Bonjour,
    je débute avec gtkmm et cairomm et je rencontre un problème quand je veux entrer des caractères spéciaux avec
    où cr est un Cairo::RefPtr<Cairo::Context>.
    Je souhaite mettre dans la chaîne text des symboles musicaux,par exemple 𝅘𝅥𝅯 ou 𝄡 dont les codes unicode sont respectivement 1D161 et 1D11.
    Si j'écrits
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    std::string text="\x1D161\x1D121";
    ça ne marche pas, c'est à dire que le caractère n'est pas le bon ou s'affiche comme une boîte vide.

    Par contre si je saisis les caractères dans OOWriter par Ctrl+Maj u1D161 Ctrl+Maj u1D161 et que je fais un copier coller de OOWriter vers mon éditeur dans Eclipse, comme ceci:

    std::string text="𝅘𝅥𝅯 𝄡"; "; .

    alors ça marche.

    Si quelqu'un peut m'expliquer ce qu'il faut faire pour entrer les valeurs unicode dans mes string alors j'en serai ravi.
    Merci.

  2. #2
    Membre Expert
    Homme Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 259
    Par défaut
    Il faut probablement mettre de l'UTF8 dans ta chaîne, je ne sais pas à quoi correspondent ces valeurs. Un truc auquel faire attention c'est que toutes les fonctions sur les std::string ont besoin de connaître le nombre de caractères de ta chaîne vont avoir un comportement surprenant. Les caractères unicode occupent plusieurs octets en mémoire, et std::string considère en général qu'un caractère = 1 octet. gtkmm fournit une classe "ustring" pour gérer ce cas là.

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

    Informations forums :
    Inscription : Octobre 2010
    Messages : 30
    Par défaut
    Bonjour,
    Merci pour ta réponse. Le problème c'est que la signature de la fonction attend une str::string.

    void Cairo::Context::show_text ( const std::string & utf8 )

    Si j'utilise Glib::ustring le programme continue à marcher de la même façon.
    Il faut sans doute en effet que je regarde comment assurer que mes valeurs unicode soit encodées UTF-8.

  4. #4
    Membre Expert
    Homme Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 259
    Par défaut
    Pour de l'affichage de chaînes "sophistiquées", il est recommandé d'utiliser pango.

Discussions similaires

  1. Problème avec caractères spéciaux dans STRING
    Par sibama dans le forum VB.NET
    Réponses: 2
    Dernier message: 24/04/2012, 10h14
  2. Réponses: 1
    Dernier message: 07/05/2010, 17h34
  3. string.replace et caractères spéciaux
    Par fitiwizz dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 25/03/2009, 11h03
  4. Réponses: 13
    Dernier message: 09/01/2008, 01h32
  5. Conversion Caractères Spéciaux String -> Caractères HTML
    Par JujuDorange dans le forum Documents
    Réponses: 1
    Dernier message: 21/10/2006, 12h11

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