De lucru cu codificarea UTF-8 în sursă Python

Ia în considerare:

$ 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

Cum pot declara UTF-8 siruri de caractere în codul sursă?

Comentarii la întrebare (1)

În sursa antet puteți declara:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
....

Acesta este descris în PEP 0263:

Apoi puteți folosi UTF-8 siruri de caractere:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

u = 'idzie wąż wąską dróżką'
uu = u.decode('utf8')
s = uu.encode('cp1250')
print(s)

Această declarație nu este necesară în Python 3 ca UTF-8 este implicit de codare a sursei (vezi PEP 3120).

În plus, acesta poate fi în valoare de a verifica că editorul de text în mod corespunzător codifică codul în UTF-8. În caz contrar, ai putea fi invizibil caractere care nu sunt interpretate ca UTF-8.

Comentarii (15)

Nu uita pentru a verifica dacă editor de text codifică corect codul în UTF-8.

În caz contrar, ai putea fi invizibil caractere care nu sunt interpretate ca UTF-8.

Comentarii (7)