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
encodingszu 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
1oder0zurü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
NULLsein, um die für den Codec definierte Standardmethode zu verwenden. Löst einenLookupErroraus, 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
NULLsein, um die für den Codec definierte Standardmethode zu verwenden. Löst einenLookupErroraus, 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,UnicodeDecodeErroroderUnicodeTranslateError, 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
0im Erfolgsfall und-1im 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
?oderU+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,\uund\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.