This document is for an old version of Python that is no longer supported. You should upgrade and read the documentação do Python para versão estável atual.

# Registro de codec e funções de suporte

int `PyCodec_Register`(PyObject *search_function)

  Registra uma nova função de busca de codec.

  Como efeito colateral, tenta carregar o pacote `encodings`, se isso ainda não tiver sido feito, com o propósito de garantir que ele sempre seja o primeiro na lista de funções de busca.

int `PyCodec_KnownEncoding`(const char *encoding)

  Return `1` or `0` depending on whether there is a registered codec for the given encoding.

PyObject* `PyCodec_Encode`(PyObject *object, const char *encoding, const char *errors)

  API de codificação baseada em codec genérico.

  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)

  API de decodificação baseada em decodificador genérico.

  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 de pesquisa de codec

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)

  Obtém uma função de codificação para o encoding dado.

PyObject* `PyCodec_Decoder`(const char *encoding)

  Obtém uma função de decodificação para o encoding dado.

PyObject* `PyCodec_IncrementalEncoder`(const char *encoding, const char *errors)

  Obtém um objeto `IncrementalEncoder` para o encoding dado.

PyObject* `PyCodec_IncrementalDecoder`(const char *encoding, const char *errors)

  Obtém um objeto `IncrementalDecoder` para o encoding dado.

PyObject* `PyCodec_StreamReader`(const char *encoding, PyObject *stream, const char *errors)

  Obtém uma função de fábrica `StreamReader` para o encoding dado.

PyObject* `PyCodec_StreamWriter`(const char *encoding, PyObject *stream, const char *errors)

  Obtém uma função de fábrica `StreamWriter` para o encoding dado.

## API de registro de tratamentos de erros de decodificação Unicode

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

  Registra a função de retorno de chamada de tratamento de erro para o nome fornecido. Esta chamada de função é invocada por um codificador quando encontra caracteres/bytes indecodificáveis e nome é especificado como o parâmetro de erro na chamada da função de codificação/decodificação.

  O retorno de chamada obtém um único argumento, uma instância de `UnicodeEncodeError`, `UnicodeDecodeError` ou `UnicodeTranslateError` que contém informações sobre a sequencia problemática de caracteres ou bytes e seu deslocamento na string original (consulte Objetos de exceção Unicode para funções que extraem essa informação). A função de retorno de chamada deve levantar a exceção dada, ou retornar uma tupla de dois itens contendo a substituição para a sequência problemática, e um inteiro fornecendo o deslocamento na string original na qual a codificação/decodificação deve ser retomada.

  Retorna``0`` em caso de sucesso, `-1` em caso de erro.

PyObject* `PyCodec_LookupError`(const char *name)

  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)

  Levanta exc como uma exceção.

PyObject* `PyCodec_IgnoreErrors`(PyObject *exc)

  Ignora o erro de unicode, ignorando a entrada que causou o erro.

PyObject* `PyCodec_ReplaceErrors`(PyObject *exc)

  Substitui o erro de unicode por `?` ou `U+FFFD`.

PyObject* `PyCodec_XMLCharRefReplaceErrors`(PyObject *exc)

  Substitui o erro de unicode por caracteres da referência XML.

PyObject* `PyCodec_BackslashReplaceErrors`(PyObject *exc)

  Substitui o erro de unicode com escapes de barra invertida (`\x`, `\u` e `\U`).