Реестр кодеков и функции поддержки
-
int
PyCodec_Register
(PyObject *search_function) Регистрирует новую функцию поиска кодеков.
В качестве побочного эффекта это пытается загрузить пакет
encodings
, если это ещё не сделано, чтобы он всегда был первым в списке функций поиска.
-
int
PyCodec_KnownEncoding
(const char *encoding) Возвращает
1
или0
в зависимости от того, есть ли зарегистрированный кодек для данного encoding. Функция всегда успешна.
-
PyObject*
PyCodec_Encode
(PyObject *object, const char *encoding, const char *errors) - Return value: New reference.
API кодирования на основе универсального кодека.
object передается через функцию кодировщика, найденную для данного encoding, с использованием метода обработки ошибок, определенного errors. errors может быть
NULL
, чтобы использовать метод по умолчанию, определенный для кодека. ВызываетLookupError
, если кодировщик не обнаружен.
-
PyObject*
PyCodec_Decode
(PyObject *object, const char *encoding, const char *errors) - Return value: New reference.
API декодирования на основе универсального кодека.
object передается через функцию декодера, найденную для данного encoding, с использованием метода обработки ошибок, определенного errors. errors может быть
NULL
, чтобы использовать метод по умолчанию, определенный для кодека. ВызываетLookupError
, если кодировщик не обнаружен.
API поиска кодеков
В следующих функциях строка encoding преобразуется во все символы нижнего
регистра, что делает поиск кодировок с помощью этого механизма эффективно
нечувствительным к регистру. Если кодек не найден, устанавливается
KeyError
и возвращается NULL
.
-
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.
Получить объект
IncrementalEncoder
для данного encoding.
-
PyObject*
PyCodec_IncrementalDecoder
(const char *encoding, const char *errors) - Return value: New reference.
Получить объект
IncrementalDecoder
для данного encoding.
-
PyObject*
PyCodec_StreamReader
(const char *encoding, PyObject *stream, const char *errors) - Return value: New reference.
Получить заводскую функцию
StreamReader
для данного encoding.
-
PyObject*
PyCodec_StreamWriter
(const char *encoding, PyObject *stream, const char *errors) - Return value: New reference.
Получить заводскую функцию
StreamWriter
для данного encoding.
API реестра для обработчиков ошибок кодировки Юникод
-
int
PyCodec_RegisterError
(const char *name, PyObject *error) Регистрирует функцию обратного вызова обработки ошибок error под заданным name. Функция обратного вызова будет вызываться кодеком, когда он встречает некодируемые символы/некодируемые байты, а name указывается в качестве параметра ошибки при вызове функции Кодирования/декодирования.
Обратный вызов получает единственный аргумент, экземпляр
UnicodeEncodeError
,UnicodeDecodeError
илиUnicodeTranslateError
, который содержит информацию о проблемной последовательности символов или байтов и их смещении в исходной строке (см. Объекты исключений Юникод для функций для извлечения этой информации). Обратный вызов должен либо вызвать данное исключение, либо возвращает двухэлементный кортеж, содержащий замену проблемной последовательности, и целое число, дающее смещение в исходной строке, с которого следует возобновить Кодирование/декодирование.Возвращает
0
в случае успеха,-1
в случае ошибки.
-
PyObject*
PyCodec_LookupError
(const char *name) - Return value: New reference.
Найти функцию обратного вызова обработки ошибок, зарегистрированную под name. В качестве особого случая можно передать
NULL
, и в этом случае будет возвращен обратный вызов обработки ошибок для «strict».
-
PyObject*
PyCodec_StrictErrors
(PyObject *exc) - Return value: Always NULL.
Вызывает exc как исключение.
-
PyObject*
PyCodec_IgnoreErrors
(PyObject *exc) - Return value: New reference.
Игнорирует ошибку Юникод, пропуская ошибочный ввод.
-
PyObject*
PyCodec_ReplaceErrors
(PyObject *exc) - Return value: New reference.
Заменяет ошибку кодирования Юникод на
?
илиU+FFFD
.
-
PyObject*
PyCodec_XMLCharRefReplaceErrors
(PyObject *exc) - Return value: New reference.
Заменяет ошибку кодирования Юникод ссылками на символы XML.