Práca s kódovaním UTF-8 v zdroji jazyka Python

Zvážte:

$ 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

Ako môžem deklarovať reťazce UTF-8 v zdrojovom kóde?

V hlavičke zdroja môžete deklarovať:

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

Je to popísané v PEP 0263:

Potom môžete v reťazcoch používať 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)

Táto deklarácia nie je v Pythone 3 potrebná, pretože UTF-8 je predvolené zdrojové kódovanie (pozri PEP 3120).

Okrem toho sa možno oplatí overiť, či váš textový editor správne kóduje kód v UTF-8. V opačnom prípade sa vám môžu vyskytnúť neviditeľné znaky, ktoré nie sú interpretované ako UTF-8.

Komentáre (15)

Nezabudnite overiť, či váš textový editor správne kóduje kód v UTF-8.

V opačnom prípade sa môžu vyskytnúť neviditeľné znaky, ktoré nie sú interpretované ako UTF-8.

Komentáre (7)