Регистр кодеков и поддерживающие функции
-
int PyCodec_Register(PyObject *search_function) -
Зарегистрировать новую функцию поиска кодеков.
В качестве побочного эффекта, это пытается загрузить пакет
encodings, если он еще не загружен, чтобы убедиться, что он всегда стоит первым в списке функций поиска.
-
int PyCodec_KnownEncoding(const char *encoding) -
Возвращает
1или0, в зависимости от того, существует ли зарегистрированный кодек для данного кодирования. Эта функция всегда выполняется успешно.
-
PyObject* PyCodec_Encode(PyObject *object, const char *encoding, const char *errors) -
Значение возврата: новая ссылка.
Общий API кодирования на основе кодеков.
object передаётся через функцию кодирования, найденную для данного кодирования, используя метод обработки ошибок, определённый параметром errors. errors может быть
NULL, чтобы использовать метод по умолчанию, определённый для кодека. Вызывает исключениеLookupError, если кодер не найден.
-
PyObject* PyCodec_Decode(PyObject *object, const char *encoding, const char *errors) -
Значение возврата: новая ссылка.
Общий API декодирования на основе кодеков.
object передаётся через функцию декодирования, найденную для данного кодирования, используя метод обработки ошибок, определённый параметром errors. errors может быть
NULL, чтобы использовать метод по умолчанию, определённый для кодека. Вызывает исключениеLookupError, если декодер не найден.
API поиска кодеков
В следующих функциях строка encoding ищется, преобразуется в символы с маленькими буквами, что делает кодировки, найденные с помощью этого механизма, фактически регистронезависимыми. Если кодек не найден, устанавливается KeyError и возвращается NULL.
-
PyObject* PyCodec_Encoder(const char *encoding) -
Значение возврата: новая ссылка.
Получить функцию кодирования для данного кодирования.
-
PyObject* PyCodec_Decoder(const char *encoding) -
Значение возврата: новая ссылка.
Получить функцию декодирования для данного кодирования.
-
PyObject* PyCodec_IncrementalEncoder(const char *encoding, const char *errors) -
Значение возврата: новая ссылка.
Получить объект
IncrementalEncoderдля данного кодирования.
-
PyObject* PyCodec_IncrementalDecoder(const char *encoding, const char *errors) -
Значение возврата: новая ссылка.
Получить объект
IncrementalDecoderдля данного кодирования.
-
PyObject* PyCodec_StreamReader(const char *encoding, PyObject *stream, const char *errors) -
Значение возврата: новая ссылка.
Получить функцию-фабрику
StreamReaderдля данного кодирования.
-
PyObject* PyCodec_StreamWriter(const char *encoding, PyObject *stream, const char *errors) -
Значение возврата: новая ссылка.
Получить функцию-фабрику
StreamWriterдля данного кодирования.
API регистрации обработчиков ошибок кодирования Unicode
-
int PyCodec_RegisterError(const char *name, PyObject *error) -
Зарегистрировать функцию обратного вызова обработки ошибок error под данным именем name. Эта функция обратного вызова будет вызвана кодеком, когда он столкнётся с некодируемыми символами/недекодируемыми байтами, и name указан как параметр error в вызове функций encode/decode.
Функция обратного вызова получает один аргумент — экземпляр
UnicodeEncodeError,UnicodeDecodeErrorилиUnicodeTranslateError, содержащий информацию о проблемной последовательности символов или байтов и их смещении в исходной строке (см. Объекты исключений Unicode для получения функций для извлечения этой информации). Функция обратного вызова должна либо вызвать указанное исключение, либо вернуть кортеж из двух элементов: замену проблемной последовательности и целое число, указывающее смещение в исходной строке, на котором следует возобновить кодирование/декодирование.Возвращает
0при успехе,-1при ошибке.
-
PyObject* PyCodec_LookupError(const char *name) -
Значение возврата: новая ссылка.
Ищет функцию обратного вызова обработки ошибок, зарегистрированную под именем name. В качестве специального случая можно передать
NULL, в этом случае будет возвращена функция обратного вызова обработки ошибок для «строгого» режима.
-
PyObject* PyCodec_StrictErrors(PyObject *exc) -
Значение возврата: всегда NULL.
Вызывает исключение exc.
-
PyObject* PyCodec_IgnoreErrors(PyObject *exc) -
Значение возврата: новая ссылка.
Игнорирует ошибку Unicode, пропуская некорректный ввод.
-
PyObject* PyCodec_ReplaceErrors(PyObject *exc) -
Значение возврата: новая ссылка.
Заменяет ошибку кодирования Unicode на
?илиU+FFFD.
-
PyObject* PyCodec_XMLCharRefReplaceErrors(PyObject *exc) -
Значение возврата: новая ссылка.
Заменяет ошибку кодирования Unicode на XML-сущности.
-
PyObject* PyCodec_BackslashReplaceErrors(PyObject *exc) -
Значение возврата: новая ссылка.
Заменяет ошибку кодирования Unicode на экранированные обратные слэши (
\x,\uи\U).
-
PyObject* PyCodec_NameReplaceErrors(PyObject *exc) -
Значение возврата: новая ссылка.
Заменяет ошибку кодирования Unicode на экранированные символы
\N{...}.Новое в версии 3.5.
© 2001–2022 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.8/c-api/codec.html