Реестр кодеков и функций поддержки¶
-
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.
