Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1535 connectés 

  FORUM HardWare.fr
  Programmation
  C

  GTK et g_locale_to_utf8

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

GTK et g_locale_to_utf8

n°1987475
Yionel
Profil : lactique
Posté le 26-04-2010 à 04:31:08  profilanswer
 

Bonjour,
 
Voila j'ai un souci concernant une fonction g_locale_to_utf8.
Quand je veux insérer un texte avec des lettres accentuées par le biais de cette fonction, cela ne marche pas.  
Je pense que cela vient de mon OS qui est en anglais.
 

Code :
  1. #include <stdlib.h>
  2. #include <locale.h>
  3. #include <gtk/gtk.h>
  4. #define UTF8(string) g_locale_to_utf8(string, -1, NULL, NULL, NULL)
  5. int main(int argc,char **argv)
  6. {
  7.     GtkWidget* p_Window;
  8.     GtkWidget* p_Label;
  9. gchar* sUtf8;
  10.     setlocale(LC_ALL, "fr_FR.ISO-8859-1" );
  11.     gtk_init(&argc,&argv);
  12.     p_Window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
  13.     gtk_window_set_title(GTK_WINDOW(p_Window), "Series !" );
  14.     gtk_window_set_default_size(GTK_WINDOW(p_Window), 320, 240);
  15. gtk_window_set_position (GTK_WINDOW (p_Window), GTK_WIN_POS_CENTER);
  16. /* gtk_window_set_icon_from_file(GTK_WINDOW (p_Window),); */
  17. g_signal_connect(G_OBJECT(p_Window), "destroy", G_CALLBACK(gtk_main_quit), NULL);
  18.     sUtf8 = UTF8("Un <b>texte</b> sans accents !" );
  19.     p_Label=gtk_label_new(sUtf8);
  20.     gtk_label_set_use_markup (GTK_LABEL(p_Label), TRUE);
  21.     g_free(sUtf8);
  22.     gtk_container_add(GTK_CONTAINER(p_Window), p_Label);
  23.     gtk_widget_show_all(p_Window);
  24.     gtk_main();
  25.     return EXIT_SUCCESS;
  26. }


 
http://yionel.fr/vrac/Screenshot-Series%20!.png
 
J'ai donc essayé de mettre une fonction setlocale(LC_ALL, "fr_FR.ISO-8859-1" ); mais cela ne marche pas non plus.
Pouvez vous m'aider ?  
 
Merci beaucoup !


Message édité par Yionel le 26-04-2010 à 08:19:59
mood
Publicité
Posté le 26-04-2010 à 04:31:08  profilanswer
 

n°1987555
404 Not Fo​und
Posté le 26-04-2010 à 11:09:44  profilanswer
 

Vérifie que les locales UTF-8 sont installées au niveau de l'OS
(dpkg-reconfigure locales pour Debian et dérivés)
 
J'ai essayé ceci sur ma machine:

Code :
  1. #include <stdlib.h>
  2. #include <gtk/gtk.h>
  3. #define UTF8(string) g_locale_to_utf8(string, -1, NULL, NULL, NULL)
  4. int main(int argc,char **argv)
  5. {
  6.     GtkWidget* p_Window;
  7.     GtkWidget* p_Label;
  8. gchar* sUtf8;
  9.     gtk_init(&argc,&argv);
  10.     p_Window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
  11.     gtk_window_set_title(GTK_WINDOW(p_Window), "Series !" );
  12.     gtk_window_set_default_size(GTK_WINDOW(p_Window), 320, 240);
  13. gtk_window_set_position (GTK_WINDOW (p_Window), GTK_WIN_POS_CENTER);
  14. /* gtk_window_set_icon_from_file(GTK_WINDOW (p_Window),); */
  15. g_signal_connect(G_OBJECT(p_Window), "destroy", G_CALLBACK(gtk_main_quit), NULL);
  16.     sUtf8 = UTF8("Un <b>texte</b> avec accents ààà yéééé  !" );
  17.     p_Label=gtk_label_new(sUtf8);
  18.     gtk_label_set_use_markup (GTK_LABEL(p_Label), TRUE);
  19.     g_free(sUtf8);
  20.     gtk_container_add(GTK_CONTAINER(p_Window), p_Label);
  21.     gtk_widget_show_all(p_Window);
  22.     gtk_main();
  23.     return EXIT_SUCCESS;
  24. }


 
Et tout fonctionne parfaitement ;)

n°1987748
Yionel
Profil : lactique
Posté le 26-04-2010 à 20:48:52  profilanswer
 


 
oh ! salopio !! ça marche super !!  [:cerveau neuf]  [:cerveau neuf]  merci beaucoup !!
 
Par contre, peux tu me dire pourquoi les locales UTF-8 ne sont pas installées ? par défaut Ubuntu gère d'autres locale ISO truc par exemple ?
Je ne saisi pas bien le concept
 

n°1987860
404 Not Fo​und
Posté le 27-04-2010 à 10:31:18  profilanswer
 

Je sais pas trop pour Ubuntu, mais Debian demande de choisir la locale par défaut lors de l'installation.
(et propose de générer éventuellement d'autres locales)
 
Pour une distro récente, ça m'étonnerait fortement que le système choisisse par défaut ISO-8859-1 ou 15 à la place d'UTF-8 ...

n°1988039
Yionel
Profil : lactique
Posté le 27-04-2010 à 15:03:41  profilanswer
 

404 Not Found a écrit :

Je sais pas trop pour Ubuntu, mais Debian demande de choisir la locale par défaut lors de l'installation.
(et propose de générer éventuellement d'autres locales)
 
Pour une distro récente, ça m'étonnerait fortement que le système choisisse par défaut ISO-8859-1 ou 15 à la place d'UTF-8 ...


 
Bah ma Karmic qui est la plus récente qui soit n'avait pas d'UTF-8 par défaut  [:cerveau klem]


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  GTK et g_locale_to_utf8

 

Sujets relatifs
utf8 etc[Divers][Gtk] Application avec Gtk (débutant)
iso8859-1 > UTF8 probleme avec a accent grave[Résolu tout seul] [GTK] GTK Cell Renderer ne dessine qu'une ligne ?
utf8 plus aide meilleur codage[résolu]recherche dans un fichier encodé en utf8
[VS 2005] Variable locale alignée sur adresse impaire[GTK+] Ajouter un boutton a une fenetre grace à une fonction
[Gtkmm] Activer Gtk::RadioButton depuis un menuItem 
Plus de sujets relatifs à : GTK et g_locale_to_utf8


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR