Codec-Registrierung und Hilfsfunktionen

int PyCodec_Register(PyObject *search_function)
Teil der Stable ABI.

Registriert eine neue Codec-Suchfunktion.

Als Nebeneffekt versucht dies, das Paket encodings zu laden, falls dies noch nicht geschehen ist, um sicherzustellen, dass es immer an erster Stelle in der Liste der Suchfunktionen steht.

int PyCodec_Unregister(PyObject *search_function)
Teil der Stable ABI seit Version 3.10.

Hebt die Registrierung einer Codec-Suchfunktion auf und leert den Cache der Registrierung. Wenn die Suchfunktion nicht registriert ist, tut sie nichts. Gibt 0 im Erfolgsfall zurück. Löst eine Ausnahme aus und gibt -1 im Fehlerfall zurück.

Hinzugefügt in Version 3.10.

int PyCodec_KnownEncoding(const char *encoding)
Teil der Stable ABI.

Gibt 1 oder 0 zurück, je nachdem, ob ein registrierter Codec für die gegebene encoding vorhanden ist. Diese Funktion ist immer erfolgreich.

PyObject *PyCodec_Encode(PyObject *object, const char *encoding, const char *errors)
Rückgabewert: Neue Referenz. Teil der Stabilen ABI.

Generische Codec-basierte Encoding-API.

object wird durch die Encoder-Funktion geleitet, die für die gegebene encoding gefunden wurde, unter Verwendung der durch errors definierten Fehlerbehandlungsmethode. errors kann NULL sein, um die für den Codec definierte Standardmethode zu verwenden. Löst einen LookupError aus, wenn kein Encoder gefunden werden kann.

PyObject *PyCodec_Decode(PyObject *object, const char *encoding, const char *errors)
Rückgabewert: Neue Referenz. Teil der Stabilen ABI.

Generische Codec-basierte Decoding-API.

object wird durch die Decoder-Funktion geleitet, die für die gegebene encoding gefunden wurde, unter Verwendung der durch errors definierten Fehlerbehandlungsmethode. errors kann NULL sein, um die für den Codec definierte Standardmethode zu verwenden. Löst einen LookupError aus, wenn kein Encoder gefunden werden kann.

Codec-Lookup-API

In den folgenden Funktionen wird der String encoding in Kleinbuchstaben umgewandelt, was dazu führt, dass Codecs, die über diesen Mechanismus gesucht werden, effektiv nicht zwischen Groß- und Kleinschreibung unterscheiden. Wenn kein Codec gefunden wird, wird ein KeyError gesetzt und NULL zurückgegeben.

PyObject *PyCodec_Encoder(const char *encoding)
Rückgabewert: Neue Referenz. Teil der Stabilen ABI.

Ruft eine Encoder-Funktion für die gegebene encoding ab.

PyObject *PyCodec_Decoder(const char *encoding)
Rückgabewert: Neue Referenz. Teil der Stabilen ABI.

Ruft eine Decoder-Funktion für die gegebene encoding ab.

PyObject *PyCodec_IncrementalEncoder(const char *encoding, const char *errors)
Rückgabewert: Neue Referenz. Teil der Stabilen ABI.

Ruft ein IncrementalEncoder-Objekt für die gegebene encoding ab.

PyObject *PyCodec_IncrementalDecoder(const char *encoding, const char *errors)
Rückgabewert: Neue Referenz. Teil der Stabilen ABI.

Ruft ein IncrementalDecoder-Objekt für die gegebene encoding ab.

PyObject *PyCodec_StreamReader(const char *encoding, PyObject *stream, const char *errors)
Rückgabewert: Neue Referenz. Teil der Stabilen ABI.

Ruft eine StreamReader-Factory-Funktion für die gegebene encoding ab.

PyObject *PyCodec_StreamWriter(const char *encoding, PyObject *stream, const char *errors)
Rückgabewert: Neue Referenz. Teil der Stabilen ABI.

Ruft eine StreamWriter-Factory-Funktion für die gegebene encoding ab.

Registrierungs-API für Unicode-Encoding-Fehlerbehandler

int PyCodec_RegisterError(const char *name, PyObject *error)
Teil der Stable ABI.

Registriert die Fehlerbehandlungs-Callback-Funktion error unter dem gegebenen name. Diese Callback-Funktion wird von einem Codec aufgerufen, wenn er nicht kodierbare Zeichen/nicht dekodierbare Bytes findet und name als Fehlerparameter in dem Aufruf der Encode-/Decode-Funktion angegeben ist.

Der Callback erhält ein einzelnes Argument, eine Instanz von UnicodeEncodeError, UnicodeDecodeError oder UnicodeTranslateError, die Informationen über die problematische Zeichen- oder Bytefolge und ihren Offset in der ursprünglichen Zeichenkette enthält (siehe Unicode Exception Objects für Funktionen zur Extraktion dieser Informationen). Der Callback muss entweder die gegebene Ausnahme auslösen oder ein Tupel aus zwei Elementen zurückgeben, das den Ersatz für die problematische Sequenz und eine Ganzzahl, die den Offset in der ursprünglichen Zeichenkette angibt, ab dem die Kodierung/Dekodierung fortgesetzt werden soll, enthält.

Gibt 0 im Erfolgsfall und -1 im Fehlerfall zurück.

PyObject *PyCodec_LookupError(const char *name)
Rückgabewert: Neue Referenz. Teil der Stabilen ABI.

Sucht die unter name registrierte Fehlerbehandlungs-Callback-Funktion. Als Sonderfall kann NULL übergeben werden, in diesem Fall wird der Fehlerbehandlungs-Callback für "strict" zurückgegeben.

PyObject *PyCodec_StrictErrors(PyObject *exc)
Rückgabewert: Immer NULL. Teil der Stable ABI.

Löst exc als Ausnahme aus.

PyObject *PyCodec_IgnoreErrors(PyObject *exc)
Rückgabewert: Neue Referenz. Teil der Stabilen ABI.

Ignoriert den Unicode-Fehler und überspringt die fehlerhaften Eingaben.

PyObject *PyCodec_ReplaceErrors(PyObject *exc)
Rückgabewert: Neue Referenz. Teil der Stabilen ABI.

Ersetzt den Unicode-Encode-Fehler durch ? oder U+FFFD.

PyObject *PyCodec_XMLCharRefReplaceErrors(PyObject *exc)
Rückgabewert: Neue Referenz. Teil der Stabilen ABI.

Ersetzt den Unicode-Encode-Fehler durch XML-Zeichenreferenzen.

PyObject *PyCodec_BackslashReplaceErrors(PyObject *exc)
Rückgabewert: Neue Referenz. Teil der Stabilen ABI.

Ersetzt den Unicode-Encode-Fehler durch Backslash-Escapes (\x, \u und \U).

PyObject *PyCodec_NameReplaceErrors(PyObject *exc)
Rückgabewert: Neue Referenz. Teil der Stable ABI seit Version 3.7.

Ersetzt den Unicode-Encode-Fehler durch \N{...}-Escapes.

Hinzugefügt in Version 3.5.