Erreur python: SyntaxError: Non-ASCII character '\x8e' in file...

Published: 20 février 2015

DMCA.com Protection Status

L'une des erreurs les plus courantes lorsque l'on veut utiliser dans un script python des accents (Note: voir l'article sur Afficher / Travailler avec les accents sous python). Imaginons le simple script python (intitulé ici: TestCode.py) suivant:

print "J'ai tout mangé le chocolat"

en executant ce code vous allez obtenir le message suivant:

% python TestCode.py
      File "TestCode.py", line 1
      print u"j'ai mang? tout le chocolat"
SyntaxError: (unicode error) 'utf8' codec can't decode byte 0x8e in position 0: invalid start byte

Pour corriger cela il suffit d'indiquer l'encodage (# -- coding: utf-8 --) au début du script et de mettre un 'u' devant le string pour indiquer que celui-ci doit être en unicode:

# -*- coding: utf-8 -*-

print u"J'ai tout mangé le chocolat"

donne maintenant:

% python TestCode.py
J'ai tout mangé le chocolat

Recherches associées