Flux rss
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Résolu

[Python] accents avec wxPython - utf8 ?

MyDomDom, le vendredi 1 juin 2007 à 16:28:23
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
Configuration: Mac OS X
Firefox 2.0
Répondre à MyDomDom  Signaler ce message aux modérateurs Aller au dernier message

1


  • 1
    Ce message vous semble utile, votez !
  • Ce message ne vous semble pas utile, votez !
  • Signaler ce message aux modérateurs
sebsauvage, le vendredi 1 juin 2007 à 17:16:55
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 http://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.
Répondre à sebsauvage

2


  • 1
    Ce message vous semble utile, votez !
  • Ce message ne vous semble pas utile, votez !
  • Signaler ce message aux modérateurs
MyDomDom, le vendredi 1 juin 2007 à 18:47:01
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
Répondre à MyDomDom

3


  • 1
    Ce message vous semble utile, votez !
  • Ce message ne vous semble pas utile, votez !
  • Signaler ce message aux modérateurs
sebsauvage, le vendredi 1 juin 2007 à 20:09:42
:-)

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 :-)
Répondre à sebsauvage

4


  • 1
    Ce message vous semble utile, votez !
  • Ce message ne vous semble pas utile, votez !
  • Signaler ce message aux modérateurs
MyDomDom, le lundi 4 juin 2007 à 15:15:47
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
Répondre à MyDomDom

5


  • 1
    Ce message vous semble utile, votez !
  • Ce message ne vous semble pas utile, votez !
  • Signaler ce message aux modérateurs
MyDomDom, le lundi 4 juin 2007 à 15:45:10
Petit code au cas où:
# -*- 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
Répondre à MyDomDom

6


  • 1
    Ce message vous semble utile, votez !
  • Ce message ne vous semble pas utile, votez !
  • Signaler ce message aux modérateurs
 sebsauvage, le lundi 4 juin 2007 à 23:10:58
Merci du retour.
Répondre à sebsauvage

Résultats pour [Python] accents avec wxPython utf8 ?

[utf8] probleme accent mysql (Résolu) Bonjour, j'ai un probleme d'accent ... j'ai une base de donnée mysql avec : Jeu de caractères pour MySQL: UTF-8 Unicode (utf8) Interclassement pour la connection MySQL: utf8_general_ci dans laquelle il y'a une table avec... www.commentcamarche.net/forum/affich-3261825-utf8-probleme-accent-mysql
[python] entry accents... (Résolu) Bonjour, J'ai un souci avec python. Lorsque je rentre un accent dans un entry et que je récupère la valeur il me met une erreur du type code ascii il me semble. Comment faire pour palier ce problème ? En début de programme j'ai : # -*-... www.commentcamarche.net/forum/affich-3027900-python-entry-accents

Résultats pour [Python] accents avec wxPython utf8 ?

Utiliser des accents et autres caractères spéciauxDans la plupart des langages de programmation, on ne peut utiliser directement les accents et autres caractères non-anglosaxon. La solution est l'unicode, une sorte de code universel. Par exemple pour afficher la chaine de caractères : " là, ça... www.commentcamarche.net/faq/sujet-188-utiliser-des-accents-et-autres-caracteres-speciaux
[Python] Lire et écrire des fichiers CSVLIRE ET ÉCRIRE DES FICHIERS CSV Python www.python.org, dans sa version 2.4 supporte de facto le format CSV (comma-separated values: valeurs séparées par des virgules). La Library Reference est certes très explicative à ce... www.commentcamarche.net/faq/sujet-2382-python-lire-et-ecrire-des-fichiers-csv
Supprimer les accents avec PHPPour un tas de raisons, il est parfois utile de convertir un texte accentué en un texte sans accents. Voici une fonction permettant de transformer très simplement la quasi-totalité des accents en leur équivalent non-accentués : function... www.commentcamarche.net/faq/sujet-8063-supprimer-les-accents-avec-php

Résultats pour [Python] accents avec wxPython utf8 ?

Pour vos problemes d'accent AJAX en Requete (Résolu)Mare des requetes AJAX qui ne marche pas avec les accent???? Dans la page qui fait appelle à la fonction ajax encoder les variable avec utf8_encode() Sur la page appelé en AJAX, avec votre editeur preferer faite enregistrer sous, regarder dans les... www.commentcamarche.net/forum/affich-7655426-pour-vos-problemes-d-accent-ajax-en-requete
[PHP/MYSQL] Comment traduire les accents ??? (Résolu)Bonjour, J'ai un formulaire d'enregistrement de données du visiteur, et lorsque mon script d'insertion enregistre les données, tout les mots contenant des accents comme é, à, ... dont traduits en code. Comment éviter celà ? Par exemple,... www.commentcamarche.net/forum/affich-3412858-php-mysql-comment-traduire-les-accents
Problème de REGEX avec accents (Résolu)Bonjour chers tous, J'ai un texte tiré d'une base de données contenant cette phrase par exemple : Mon REGEX suivant me permet d'accepter les accents : "/[a... www.commentcamarche.net/forum/affich-8432596-probleme-de-regex-avec-accents