Comment gérer UTF8


#1

bonjour à tous,

une petite question, comment gérer l’UTF8 dans du code Snippets?
err = "je n’ai pas trouvé le mot "
print err

UnicodeDecodeError: ‘ascii’ codec can’t decode byte

merci par avance


#2

err = u"je n’ai pas trouvé le mot"


#3

non, ca ne résoud pas le pb :frowning:

UnicodeEncodeError: ‘ascii’ codec can’t encode character u’\xe9’ in position 17: ordinal not in range(128)


#4

Rajoute “# -- coding: utf-8 --” en première ligne de ton script (ou en deuxième, s’il y a déjà “#!/usr/bin/env python2”.

Dans le doute, regarde le template Python 2 : https://github.com/snipsco/snips-actions-templates/blob/master/templates/python2/action-{{action_name}}.py.tpl

Mais le mieux reste de passer à Python 3 qui résout notamment ces problèmes. Je ne compte plus les scripts du store qui plantent sur ces problèmes. Le support officiel de Python 2 s’arrête de toute façon en 2020.


#5

trouvé une solution cracra mais qui marche :
import sys
reload(sys)
sys.setdefaultencoding(‘utf-8’)


#6

Yes, python 3 est clairement le bon choix.

Si vous êtes bloqué sur python 2

  • Vérifiez vos installations des locales sur raspi avec raspi-config. Il vous faut des locales utf-8
  • Il faut ajouter le u devant la chaîne de charactère.