Denk er eens over na:
$ 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 strings declareren in broncode?
In de source header kun je verklaren:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
....
Het is beschreven in de PEP 0263:
Dan kun je UTF-8 gebruiken in strings:
#!/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 declaratie is niet nodig in Python 3 omdat UTF-8 de standaard broncodering is (zie PEP 3120).
Daarnaast kan het de moeite waard zijn om te controleren of uw tekstverwerker uw code correct codeert in UTF-8. Anders kan het zijn dat je onzichtbare karakters hebt die niet als UTF-8 worden geïnterpreteerd.