Considerate:
$ 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
Come posso dichiarare stringhe UTF-8 nel codice sorgente?
Nell'intestazione del sorgente potete dichiarare:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
....
È descritto nel PEP 0263:
Allora si può usare UTF-8 nelle stringhe:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
u = 'idzie wąż wąską dróżką'
uu = u.decode('utf8')
s = uu.encode('cp1250')
print(s)
Questa dichiarazione non è necessaria in Python 3 poiché UTF-8 è la codifica predefinita per i sorgenti (vedere PEP 3120).
Inoltre, potrebbe essere utile verificare che il vostro editor di testo codifichi correttamente il vostro codice in UTF-8. Altrimenti, potreste avere caratteri invisibili che non sono interpretati come UTF-8.
Non dimenticate di verificare se il vostro editor di testo codifica correttamente il vostro codice in UTF-8.
Altrimenti, potreste avere dei caratteri invisibili che non vengono interpretati come UTF-8.