Considérer:
$ cat bla.py
u = unicode('d…')
s = u.encode('utf-8')
print s
$ python bla.py
File "bla.py", line 1
SyntaxError: Non-ASCII character '\xe2' in file bla.py on line 1, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details
Comment déclarer des chaînes UTF-8 dans le code source?
Dans l'en-tête de source, vous pouvez déclarer:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
....
Il est décrit dans le PEP 026 :
Ensuite, vous pouvez utiliser UTF-8 dans les chaînes:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
u = 'idzie wąż wąską dróżką'
uu = u.decode('utf8')
s = uu.encode('cp1250')
print(s)
Cette déclaration n'est pas nécessaire dans Python 3, car UTF-8 est le codage source par défaut (voir PEP 312 ).
En outre, il peut être utile de vérifier que votre éditeur de texte code correctement votre code en UTF-8. Sinon, vous pourriez avoir des caractères invisibles qui ne sont pas interprétés comme UTF-8.
N'oubliez pas de vérifier si votre éditeur de texte code correctement votre code en UTF-8.
Sinon, vous pourriez avoir des caractères invisibles qui ne sont pas interprétés comme UTF-8.