Реестр кодеков и функций поддержки¶
-
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 поиска кодека¶
В следующих функциях кодируемая строка преобразуется во все символы нижнего
регистра, что делает кодировки, просмотренные через этот механизм, эффективно
нечувствительными к регистру. Если кодировка не найдена, устанавливается
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.