Darbs ar UTF-8 kodējumu Python avotā

Apsveriet:

$ 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

Kā avota kodā deklarēt UTF-8 virknes?

Avota galvenē varat deklarēt:

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

Tas ir aprakstīts PEP 0263:

Tad virknēs var izmantot 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)

Šī deklarācija nav nepieciešama Python 3, jo UTF-8 ir noklusējuma avota kodējums (sk. PEP 3120).

Turklāt, iespējams, ir vērts pārbaudīt, vai teksta redaktors pareizi kodē kodu UTF-8 formātā. Pretējā gadījumā var rasties neredzamas rakstzīmes, kas netiek interpretētas kā UTF-8.

Komentāri (15)

Neaizmirstiet pārbaudīt, vai teksta redaktors pareizi kodē kodu UTF-8 formātā.

Pretējā gadījumā var rasties neredzamas rakstzīmes, kas netiek interpretētas kā UTF-8.

Komentāri (7)