Bienvenue, Invité. Merci de vous connecter ou de vous inscrire.
Avez-vous perdu votre e-mail d'activation ?

Auteur Sujet: [Solved] Encodages de caractères... (python-sfml)  (Lu 4576 fois)

0 Membres et 1 Invité sur ce sujet

Chako256

  • Newbie
  • *
  • Messages: 10
    • Voir le profil
[Solved] Encodages de caractères... (python-sfml)
« 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 !
« Modifié: Novembre 04, 2013, 09:41:11 am par Sonkun »

Sonkun

  • Moderator
  • Full Member
  • *****
  • Messages: 241
    • Voir le profil
Re : python-sfml2 [v1.3] Encodages de caractères...
« Réponse #1 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^^
Interested in using SFML with Python ? Try out its Python binding!

Chako256

  • Newbie
  • *
  • Messages: 10
    • Voir le profil
Re : python-sfml2 [v1.3] Encodages de caractères...
« Réponse #2 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.

Sonkun

  • Moderator
  • Full Member
  • *****
  • Messages: 241
    • Voir le profil
Re : python-sfml2 [v1.3] Encodages de caractères...
« Réponse #3 le: Mai 26, 2013, 03:32:09 pm »
En effet, y'a un soucis. Je t'ai pas oublie, je travaille toujours dessus :)
Interested in using SFML with Python ? Try out its Python binding!

Chako256

  • Newbie
  • *
  • Messages: 10
    • Voir le profil
Re : python-sfml2 [v1.3] Encodages de caractères...
« Réponse #4 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!

Sonkun

  • Moderator
  • Full Member
  • *****
  • Messages: 241
    • Voir le profil
Re : python-sfml2 [v1.3] Encodages de caractères...
« Réponse #5 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)
Interested in using SFML with Python ? Try out its Python binding!

Chako256

  • Newbie
  • *
  • Messages: 10
    • Voir le profil
Re : python-sfml2 [v1.3] Encodages de caractères...
« Réponse #6 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.