Forum de la communauté SFML

Bindings - autres langages => Python => Discussion démarrée par: Chako256 le Mai 21, 2013, 04:53:24 pm

Titre: [Solved] Encodages de caractères... (python-sfml)
Posté par: Chako256 le Mai 21, 2013, 04:53:24 pm
Bonjour à tous !

Je suis en train de créer un jeu et j'ai un gros problème d'encodages de caractères...
Afin de gérer plusieurs langues, j'ai des fichiers texte encodés en UTF-8 dans lesquels j'ai les chaînes correspondant aux textes de mes menus, du copyright, etc.
La lecture de ce fichier se passe nickel, et les chaînes récupérées sont propres.

Maintenant, lorsque je la passe au sf.Text pour l'afficher, patatras ! je me retrouve avec des caractères extraterrestres dans la fenêtre SFML. Cependant, il n'y a aucune erreur d'encodage et/ou de décodage.

Je précise que je travaille avec Python 3.3.2 et SFML 2 sous Windows XP 32 bits.

Lecture du fichier de conf:
cfg.readfp(open("./lang/" + langid + ".lang", "r", encoding='utf8'))
for opt in cfg.options('Language'):
       debug.debug("  Importing " + opt + ": " + cfg.get('Language', opt))
       self.lang[opt] = cfg.get('Language', opt)

Création du sf.Text:
copy = sf.Text(common.ENGINE.language.get_text(common.LID_COPYRIGHT), common.ENGINE.get_resource(common.FRESOURCE_DEFAULT_FONT).resource, 12)

[EDIT] Je précise au passage que l'anomalie ne vient pas de ma lecture de fichier, puisque lorsque je force la chaîne directement dans le constructeur du sf.Text j'ai les mêmes zigouigouis extraterrestres :P [/EDIT]

Si vous avez besoin d'autres infos, n'hésitez pas ! :)
Merci d'avance !
Titre: Re : python-sfml2 [v1.3] Encodages de caractères...
Posté par: Sonkun le Mai 24, 2013, 07:07:02 am
Salut !

J'ai besoin de vérifier tout ça et faire quelques tests localement avant de te dire quoi que ce soit à ce sujet. Faut dire que ça à pas mal changer depuis le temps où j'ai implémenté tout ça, avec la réapparation du type unicode dans Python 3.3, les versions successive de Cython qui ont revu leur coércion des types et de l'encodage. Je n'ai pas accès à une machine avec un environement de development mais j'espère pouvoir te répondre samedi. :)

J'espère que ça ne t'empêche pas de continuer!

Au passage, as-tu utilisé les installateurs fourni ou recompilé depuis les sources ? Juste curieux :)

EDIT: et désolé si j'ai pas répondu plus tôt, j'ai pas encore l'habitude de check le forum français^^
Titre: Re : python-sfml2 [v1.3] Encodages de caractères...
Posté par: Chako256 le Mai 24, 2013, 11:57:24 am
Salut Sonkun !

Tout d'abord, merci de ton aide :)

Ensuite, je sais que beaucoup de modifs ont été faites sur Python 3 concernant les types unicode, mais j'ai juste l'impression que je ne fais pas ce qu'il faut pour que ça marche.
Le fichier où je lis mes chaînes est en UTF-8, toutes mes sources ont l'entête "-*- coding:utf-8 -*-" et en fait en consultant la console Python, il s'avère que la chaîne est bien en UTF-8 et parfaitement affichable !

Maintenant je me demande si le composant sf.Text ne fait pas un traitement supplémentaire sur le texte passé en paramètre concernant l'encodage... j'ai essayé de chercher mais je n'ai rien trouvé de transcendant...
S'il n'y a pas d'UnicodeDecodeError ou d'UnicodeEncodeError j'imagine que cela ne vient pas d'une erreur de code Python mais peut être d'une manipulation à faire dans le sf.Text directement...

Ca ne m'empêche pas du tout de continuer, j'ai juste basculer sur mon fichier de langue "en" :P

Au passage, j'ai utilisé les installeurs de ce site : http://python-sfml.org/download.html (pySFML-1.3.0.win32-py3.3.exe [Python 3.3] [32 bit]) (oui je sais bouuuh je travaille sous windows ^^)

Merci d'avance pour ton aide !
Chako256.
Titre: Re : python-sfml2 [v1.3] Encodages de caractères...
Posté par: Sonkun le Mai 26, 2013, 03:32:09 pm
En effet, y'a un soucis. Je t'ai pas oublie, je travaille toujours dessus :)
Titre: Re : python-sfml2 [v1.3] Encodages de caractères...
Posté par: Chako256 le Mai 27, 2013, 10:33:17 am
OK merci  ;D
Je serai pas top dispo ces prochaines semaines (jusqu'à mi-juin à peu près), je déménage ^^

Bon courage!
Titre: Re : python-sfml2 [v1.3] Encodages de caractères...
Posté par: Sonkun le Juin 19, 2013, 02:01:35 am
Voilà, c'est corriger, merci :)

Par contre il va falloir recompiler, ça va aller pour ça ? Compiler sur Windows n'est pas toujours trivial. De toute façon, la version 1.4 devrait être sorti bientôt avec ses installateurs, comptes un mois. Donc si c'est pas urgent, attend sinon je t'aiderais si jamais tu as un soucis après les explications en anglais ici: http://python-sfml.org/download.html#compilation

(bon déménagement :p)
Titre: Re : python-sfml2 [v1.3] Encodages de caractères...
Posté par: Chako256 le Juin 27, 2013, 03:46:34 pm
Hello Sonkun !
désolé pour le retard et merci bien ! y'a pas de souci j'ai réussi à compiler le binding et la SFML en compilant Cython, Python 3 et tout le bazar alors ça ne me fait plus peur ;-)

Je vais donc récupérer tout ça quand j'aurais de nouveau Internet chez moi et ce sera parfait :)

Bonne fin de journée et merci encore !!! :)
Chako256.