Darbas su UTF-8 kodavimu "Python" šaltinyje

Apsvarstykite:

$ 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

Kaip šaltinio kode deklaruoti UTF-8 eilutes?

Šaltinio antraštėje galite deklaruoti:

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

Tai aprašyta PEP 0263:

Tada eilutėse galite naudoti UTF-8:

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

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

Ši deklaracija nereikalinga "Python 3", nes UTF-8 yra numatytoji šaltinio koduotė (žr. PEP 3120).

Be to, gali būti verta patikrinti, ar jūsų teksto redaktorius tinkamai koduoja kodą UTF-8 kalba. Priešingu atveju gali atsirasti nematomų simbolių, kurie nebus interpretuojami kaip UTF-8.

Komentarai (15)

Nepamirškite patikrinti, ar teksto redaktorius tinkamai koduoja kodą UTF-8 formatu.

Priešingu atveju gali atsirasti nematomų simbolių, kurie nėra interpretuojami kaip UTF-8.

Komentarai (7)