codec レジストリとサポート関数

int PyCodec_Register(PyObject *search_function)

新しい codec 検索関数を登録します。

副作用として、この関数は encodings パッケージが常に検索関数の先頭に来るように、まだロードされていない場合はロードします。

int PyCodec_KnownEncoding(const char *encoding)

encoding のための登録された codec が存在するかどうかに応じて 10 を返します。 この関数は常に成功します。

PyObject* PyCodec_Encode(PyObject *object, const char *encoding, const char *errors)
Return value: New reference.

汎用の codec ベースの encode API.

object is passed through the encoder function found for the given encoding using the error handling method defined by errors. errors may be NULL to use the default method defined for the codec. Raises a LookupError if no encoder can be found.

PyObject* PyCodec_Decode(PyObject *object, const char *encoding, const char *errors)
Return value: New reference.

汎用の codec ベースのデコード API.

object is passed through the decoder function found for the given encoding using the error handling method defined by errors. errors may be NULL to use the default method defined for the codec. Raises a LookupError if no encoder can be found.

コーデック検索API

In the following functions, the encoding string is looked up converted to all lower-case characters, which makes encodings looked up through this mechanism effectively case-insensitive. If no codec is found, a KeyError is set and NULL returned.

PyObject* PyCodec_Encoder(const char *encoding)
Return value: New reference.

与えられた encoding のエンコーダ関数を返します。

PyObject* PyCodec_Decoder(const char *encoding)
Return value: New reference.

与えられた encoding のデコーダ関数を返します。

PyObject* PyCodec_IncrementalEncoder(const char *encoding, const char *errors)
Return value: New reference.

与えられた encodingIncrementalEncoder オブジェクトを返します。

PyObject* PyCodec_IncrementalDecoder(const char *encoding, const char *errors)
Return value: New reference.

与えられた encodingIncrementalDecoder オブジェクトを返します。

PyObject* PyCodec_StreamReader(const char *encoding, PyObject *stream, const char *errors)
Return value: New reference.

与えられた encodingStreamReader ファクトリ関数を返します。

PyObject* PyCodec_StreamWriter(const char *encoding, PyObject *stream, const char *errors)
Return value: New reference.

与えられた encodingStreamWriter ファクトリ関数を返します。

Unicode エラーハンドラ用レジストリ API

int PyCodec_RegisterError(const char *name, PyObject *error)

エラーハンドルのためのコールバック関数 errorname で登録します。このコールバック関数は、コーデックがエンコードできない文字/デコードできないバイトに遭遇した時に、そのエンコード/デコード関数の呼び出しで name が指定されていたら呼び出されます。

コールバックは1つの引数として、 UnicodeEncodeError, UnicodeDecodeError, UnicodeTranslateError のどれかのインスタンスを受け取ります。このインスタンスは問題のある文字列やバイト列に関する情報と、その元の文字列中のオフセットを持っています。(その情報を取得するための関数については Unicode 例外オブジェクト を参照してください。) コールバックは渡された例外を発生させるか、2要素のタプルに問題のシーケンスの代替と、 encode/decode を再開する元の文字列中のオフセットとなる整数を格納して返します。

成功したら 0 を、エラー時は -1 を返します。

PyObject* PyCodec_LookupError(const char *name)
Return value: New reference.

Lookup the error handling callback function registered under name. As a special case NULL can be passed, in which case the error handling callback for "strict" will be returned.

PyObject* PyCodec_StrictErrors(PyObject *exc)
Return value: Always NULL.

exc を例外として発生させます。

PyObject* PyCodec_IgnoreErrors(PyObject *exc)
Return value: New reference.

unicode エラーを無視し、問題の入力をスキップします。

PyObject* PyCodec_ReplaceErrors(PyObject *exc)
Return value: New reference.

unicode エラーを ?U+FFFD で置き換えます。

PyObject* PyCodec_XMLCharRefReplaceErrors(PyObject *exc)
Return value: New reference.

unicode encode エラーを XML文字参照で置き換えます。

PyObject* PyCodec_BackslashReplaceErrors(PyObject *exc)
Return value: New reference.

unicode encode エラーをバックスラッシュエスケープ (\x, \u, \U) で置き換えます。

PyObject* PyCodec_NameReplaceErrors(PyObject *exc)
Return value: New reference.

unicode encode エラーを \N{...} で置き換えます。

バージョン 3.5 で追加.