Werken met UTF-8-codering in Python-bron

Overweeg:

$ 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

Hoe kan ik UTF-8-tekenreeksen in de broncode declareren?


Antwoord 1, autoriteit 100%

In de bronkop kunt u aangeven:

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

Het wordt beschreven in de PEP 0263:

Dan kun je UTF-8 in strings gebruiken:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
u = 'idzie wąż wąską dróżką'
uu = u.decode('utf8')
s = uu.encode('cp1250')
print(s)

Deze verklaring is niet nodig in Python 3 aangezien UTF-8 de standaard broncodering is (zie PEP 3120).

Bovendien kan het de moeite waard zijn om te controleren of uw teksteditor uw code correct codeert in UTF-8. Anders kunt u onzichtbare tekens hebben die niet worden geïnterpreteerd als UTF-8.


Antwoord 2, autoriteit 11%

Vergeet niet te controleren of uw teksteditor uw code correct codeert in UTF-8.

Anders heb je mogelijk onzichtbare tekens die niet worden geïnterpreteerd als UTF-8.

Other episodes