Angenommen, ich habe eine Funktion:
def NewFunction():
return '£'
Ich möchte etwas mit einem vorangestellten Pfund-Zeichen ausdrucken und es wird eine Fehlermeldung angezeigt, wenn ich versuche, das Programm auszuführen:
SyntaxError: Non-ASCII character '\xa3' in file 'blah' but no encoding declared;
see http://www.python.org/peps/pep-0263.html for details
Kann mir jemand sagen, wie ich ein Pfundzeichen in meine Return-Funktion einfügen kann? Ich verwende es in einer Klasse und es ist innerhalb des '__str__'
Teils, dass das Pfundzeichen enthalten ist.
Ich würde empfehlen, die PEP zu lesen, die der Fehler Ihnen gibt. Das Problem ist, dass Ihr Code versucht, die ASCII-Kodierung zu verwenden, aber das Pfund-Symbol ist kein ASCII-Zeichen. Versuchen Sie es mit der UTF-8-Kodierung. Sie können damit beginnen, indem Sie # -*- coding: utf-8 -*-
an den Anfang Ihrer .py-Datei setzen. Für Fortgeschrittene können Sie die Kodierung auch für jede einzelne Zeichenkette in Ihrem Code definieren. Wenn Sie jedoch versuchen, das Pfund-Zeichen wörtlich in Ihren Code einzufügen, benötigen Sie eine Kodierung, die es für die gesamte Datei unterstützt.
Fügen Sie zunächst die Zeile # -*- coding: utf-8 -*-
am Anfang der Datei ein und verwenden Sie dann u'foo'
für alle Nicht-ASCII-Unicode-Daten:
def NewFunction():
return u'£'
oder verwenden Sie die Magie, die seit Python 2.6 verfügbar ist, um es automatisch zu machen:
from __future__ import unicode_literals