[Python] accents avec wxPython - utf8 ?
Résolu
MyDomDom
Messages postés
7
Date d'inscription
Statut
Membre
Dernière intervention
-
yeahyeah -
yeahyeah -
Bonjour,
Je ne suis qu'un modeste amateur de python et wxpython, avec de grosses lacunes...
Malgré mes recherches sur le net et mes tentatives de codages (très) nombreuses, je ne parviens pas à TOUJOURS faire apparaitre correctement les accents sur mon appli écrite en wxpython.
J'ai bien lu le tuto de sebsauvage et bien d'autres mais ça ne passe pas toujours, notamment à l'intérieur de certains controles de wx (problèmes que j'ai du mal à reproduire).
Je précise que je suis sous Mac OS X (ou Win XP), python 2.5.1, wxpython 2.8.4.0 Unicode pour py2.5.
Je mets #-*- coding: utf-8 -*- au début de chaque fichier et un u devant les "".
Est-ce bien comme cela qu'il faut que je fasse ?
Merci d'avance
Dominique
Je ne suis qu'un modeste amateur de python et wxpython, avec de grosses lacunes...
Malgré mes recherches sur le net et mes tentatives de codages (très) nombreuses, je ne parviens pas à TOUJOURS faire apparaitre correctement les accents sur mon appli écrite en wxpython.
J'ai bien lu le tuto de sebsauvage et bien d'autres mais ça ne passe pas toujours, notamment à l'intérieur de certains controles de wx (problèmes que j'ai du mal à reproduire).
Je précise que je suis sous Mac OS X (ou Win XP), python 2.5.1, wxpython 2.8.4.0 Unicode pour py2.5.
Je mets #-*- coding: utf-8 -*- au début de chaque fichier et un u devant les "".
Est-ce bien comme cela qu'il faut que je fasse ?
Merci d'avance
Dominique
A voir également:
- [Python] accents avec wxPython - utf8 ?
- Citizen code python avis - Accueil - Outils
- E avec accent minuscule - Guide
- \R python ✓ - Forum Python
- Mot secret python pix ✓ - Forum Python
- Python est introuvable. exúcutez sans argument pour procúder ó l ✓ - Forum Python
4 réponses
Est-ce bien comme cela qu'il faut que je fasse ?
Tout à fait !
C'est très bien d'utiliser Unicode de bout en bout dans tes développements.
NB: Le source n'a pas à être obligatoirement en utf-8. Perso je met mes sources en iso-8859-1.
Sous MacOS X je ne sais pas, mais je n'ai aucun problème pour afficher les accents sous Windows (XP) et Linux (Ubuntu 7.04);
Si je prend l'appli d'exemple https://www.sebsauvage.net/python/gui/simpleapp_wx.py
Je peux entrer des accents, et ils sont correctement affichés dans le label.
Est-ce que les accents s'affichent aussi correctement chez toi avec ce programme ?
Note: il n'est pas impossible que certains widgets de wxPython ne gèrent pas correctement l'Unicode.
Tout à fait !
C'est très bien d'utiliser Unicode de bout en bout dans tes développements.
NB: Le source n'a pas à être obligatoirement en utf-8. Perso je met mes sources en iso-8859-1.
Sous MacOS X je ne sais pas, mais je n'ai aucun problème pour afficher les accents sous Windows (XP) et Linux (Ubuntu 7.04);
Si je prend l'appli d'exemple https://www.sebsauvage.net/python/gui/simpleapp_wx.py
Je peux entrer des accents, et ils sont correctement affichés dans le label.
Est-ce que les accents s'affichent aussi correctement chez toi avec ce programme ?
Note: il n'est pas impossible que certains widgets de wxPython ne gèrent pas correctement l'Unicode.
Seb,
Je te dirai lundi (le mac est au boulot!). Chez moi, sous XP, tout passe.
Merci de ta réponse, rapide en plus, et de toutes tes pages web.
Je suis sûr que plein de gens comme moi s'en servent régulièrement, sans jamais un merci.
Alors merci de faire profiter les autres de tes bons conseils.
Quand on apprend tout seul comme je l'ai fait, heureusement qu'il y a des gens comme toi pour aider parce que j'en ai passé des heures à ramer....
J'arrête le cirage, on va croire que c'est toi qui fait les questions et les réponses.... Mais c'est sincère.
Je reviens lundi pour conclure sur cette discussion
Merci
Dominique
Je te dirai lundi (le mac est au boulot!). Chez moi, sous XP, tout passe.
Merci de ta réponse, rapide en plus, et de toutes tes pages web.
Je suis sûr que plein de gens comme moi s'en servent régulièrement, sans jamais un merci.
Alors merci de faire profiter les autres de tes bons conseils.
Quand on apprend tout seul comme je l'ai fait, heureusement qu'il y a des gens comme toi pour aider parce que j'en ai passé des heures à ramer....
J'arrête le cirage, on va croire que c'est toi qui fait les questions et les réponses.... Mais c'est sincère.
Je reviens lundi pour conclure sur cette discussion
Merci
Dominique
:-)
De rien.
Je suis sûr que plein de gens comme moi s'en servent régulièrement, sans jamais un merci.
Les quelques mercis qu'on reçoit compensent ceux qui manquent :-)
De rien.
Je suis sûr que plein de gens comme moi s'en servent régulièrement, sans jamais un merci.
Les quelques mercis qu'on reçoit compensent ceux qui manquent :-)
Seb / Tous,
C'est ok. Ca marche aussi sur mac.
Je n'ai plus (pour l'instant du moins) de différence de rendu pc mac.
Conclusion pour ceux qui auraient à gérer les accents:
1/On code le fichier en iso8859-1 ou utf8 sur 1 des 2 premières lignes:
# -*- coding: utf-8 -*-
2/ On gère TOUTES les strings avec un u devant pour éviter les conflits:
maStringUnicode=u" ceci est un test: éèàç"
3/ Quand on a à utiliser des vraies strings non unicodes (par ex pour des "".join() ...), on prend la string unicode et on la recode en ascii:
maStringAscii=maStringUnicode.encode('iso-8859-1')
4/ On la remet en unicode avec:
maStringUnicode=maStringAscii.decode('iso-8859-1')
Voilà.
Pas dur, mais quand on ne sait pas, ce n'est pas facile
Grand Merci à Seb
Dominique
C'est ok. Ca marche aussi sur mac.
Je n'ai plus (pour l'instant du moins) de différence de rendu pc mac.
Conclusion pour ceux qui auraient à gérer les accents:
1/On code le fichier en iso8859-1 ou utf8 sur 1 des 2 premières lignes:
# -*- coding: utf-8 -*-
2/ On gère TOUTES les strings avec un u devant pour éviter les conflits:
maStringUnicode=u" ceci est un test: éèàç"
3/ Quand on a à utiliser des vraies strings non unicodes (par ex pour des "".join() ...), on prend la string unicode et on la recode en ascii:
maStringAscii=maStringUnicode.encode('iso-8859-1')
4/ On la remet en unicode avec:
maStringUnicode=maStringAscii.decode('iso-8859-1')
Voilà.
Pas dur, mais quand on ne sait pas, ce n'est pas facile
Grand Merci à Seb
Dominique
Petit code au cas où:
Ciao
Dominique
# -*- coding: utf-8 -*- maStringUnicode=u'Ceci est un test: é è à ç § & ' print maStringUnicode, type(maStringUnicode) maStringAscii=maStringUnicode.encode('iso-8859-1') print maStringAscii, type(maStringAscii) maStringUnicode=maStringAscii.decode('iso-8859-1') print maStringUnicode, type(maStringUnicode) # Si on a un int monInt=5 print monInt,type(monInt) print 'Est-ce un int ? ',isinstance(monInt,int) monInt=str(monInt).decode('iso-8859-1') print 'Est-ce encore un int ? ',isinstance(monInt,int), '.C\'est un ',type(monInt)
Ciao
Dominique