Bedenken Sie:
$ 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
Wie kann ich UTF-8-Strings im Quellcode deklarieren?
In der Kopfzeile der Quelle können Sie deklarieren:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
....
Dies wird im PEP 0263 beschrieben:
Dann können Sie UTF-8 in Strings verwenden:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
u = 'idzie wąż wąską dróżką'
uu = u.decode('utf8')
s = uu.encode('cp1250')
print(s)
Diese Deklaration wird in Python 3 nicht benötigt, da UTF-8 die Standard-Quellkodierung ist (siehe PEP 3120).
Außerdem sollte man sich vergewissern, dass der Texteditor den Code korrekt in UTF-8 kodiert. Andernfalls könnten Sie unsichtbare Zeichen haben, die nicht als UTF-8 interpretiert werden.
Vergessen Sie nicht, zu überprüfen, ob Ihr Texteditor Ihren Code korrekt in UTF-8 kodiert.
Andernfalls könnten Sie unsichtbare Zeichen haben, die nicht als UTF-8 interpretiert werden.