Bonjour,
Je fais du développement embarqué en Python avec Eclipse et son plugin Pydev et on m'a récemment remonté une erreur d'encodage qui survient sur la cible, sur une instruction de ce genre:
Donc, au moment de décoder la chaine unicode (qui est donc déjà décodée) Python fait préalablement un encodage implicite en utilisant l'encodage par défaut.
Code : Sélectionner tout - Visualiser dans une fenêtre à part u"chaine unicode, caractères accentués".decode("utf-8")
Sur ma cible, l'encodage par défaut est ASCII et donc, très logiquement, ça génère une erreur puisque l'encodage implicite encode en ASCII et que le décodage explicite, lequel vient derrière, utilise UTF-8.
Là ou j'ai un souci, c'est qu'il n'y pas moyen de reproduire ce comportement sur mon poste parce que Eclipse/PyDev semble modifier cet encodage par défaut, en fonction de l'encodage de mon fichier.
Par exemple, si je ne déclare pas d'encodage spécifique pour mon fichier, l'encodage par défaut de Python est cp1252, et là la ligne que j'indique provoque une erreur (ce qui est parfait).
Si je force l'encodage de mes fichiers par la ligne "# -*- coding:utf-8 -*-" au début du dit fichier (ce que je fait effectivement pour tous mes fichiers), l'encodage par défaut de Python est alors UTF-8, l'encodage implicite est fait en UTF-8, le décodage explicite qui suit se fait en utf-8 et tout roule... sauf qu'une fois sur la cible, ce n'est plus cas.
Donc, quelqu'un saurait-il m'indiquer un moyen pour inciter PyDev à se méler de qui le regarde et éviter qu'il ne touche à l'encodage par défaut de Python ?
Si vous avez une solution à partager, elle sera grandement appréciée.
Partager