Реєстр кодеків і функції підтримки¶
-
int
PyCodec_Register
(PyObject *search_function)¶ Зареєструйте нову функцію пошуку кодеків.
As side effect, this tries to load the
encodings
package, if not yet done, to make sure that it is always first in the list of search functions.
-
int
PyCodec_KnownEncoding
(const char *encoding)¶ Повертає
1
або0
залежно від того, чи існує зареєстрований кодек для даного кодування. Ця функція завжди успішна.
-
PyObject*
PyCodec_Encode
(PyObject *object, const char *encoding, const char *errors)¶ - Return value: New reference.
API кодування на основі універсального кодека.
об’єкт передається через функцію кодувальника, знайдену для даного кодування за допомогою методу обробки помилок, визначеного errors. помилки можуть бути
NULL
для використання методу за замовчуванням, визначеного для кодека. ВикликаєLookupError
, якщо кодувальник не знайдено.
-
PyObject*
PyCodec_Decode
(PyObject *object, const char *encoding, const char *errors)¶ - Return value: New reference.
Загальний API декодування на основі кодеків.
об’єкт передається через функцію декодера, знайдену для даного кодування за допомогою методу обробки помилок, визначеного errors. помилки можуть бути
NULL
для використання методу за замовчуванням, визначеного для кодека. ВикликаєLookupError
, якщо кодувальник не знайдено.
API пошуку кодеків¶
У наведених нижче функціях рядок encoding перетворюється на всі символи нижнього регістру, що робить кодування, які шукаються за допомогою цього механізму, без урахування регістру. Якщо кодек не знайдено, встановлюється KeyError
і повертається NULL
.
-
PyObject*
PyCodec_Encoder
(const char *encoding)¶ - Return value: New reference.
Отримайте функцію кодувальника для заданого кодування.
-
PyObject*
PyCodec_Decoder
(const char *encoding)¶ - Return value: New reference.
Отримайте функцію декодера для заданого кодування.
-
PyObject*
PyCodec_IncrementalEncoder
(const char *encoding, const char *errors)¶ - Return value: New reference.
Отримайте об’єкт
IncrementalEncoder
для вказаного кодування.
-
PyObject*
PyCodec_IncrementalDecoder
(const char *encoding, const char *errors)¶ - Return value: New reference.
Отримайте об’єкт
IncrementalDecoder
для вказаного кодування.
-
PyObject*
PyCodec_StreamReader
(const char *encoding, PyObject *stream, const char *errors)¶ - Return value: New reference.
Отримати фабричну функцію
StreamReader
для заданого кодування.
-
PyObject*
PyCodec_StreamWriter
(const char *encoding, PyObject *stream, const char *errors)¶ - Return value: New reference.
Отримати фабричну функцію
StreamWriter
для вказаного кодування.
API реєстру для обробників помилок кодування Unicode¶
-
int
PyCodec_RegisterError
(const char *name, PyObject *error)¶ Зареєструйте функцію зворотного виклику обробки помилок error під вказаним ім’ям. Ця функція зворотного виклику буде викликана кодеком, коли він зустріне некодовані символи/некодовані байти, а name вказано як параметр помилки під час виклику функції кодування/декодування.
Зворотний виклик отримує один аргумент, екземпляр
UnicodeEncodeError
,UnicodeDecodeError
абоUnicodeTranslateError
, який містить інформацію про проблемну послідовність символів або байтів та їх зсув у вихідному рядку (див. Виняткові об’єкти Unicode для функцій для отримання цієї інформації). Зворотний виклик повинен або викликати заданий виняток, або повертати кортеж із двох елементів, що містить заміну для проблемної послідовності, і ціле число, що дає зсув у вихідному рядку, на якому кодування/декодування має бути відновлено.Повертає
0
в разі успіху,-1
у разі помилки.
-
PyObject*
PyCodec_LookupError
(const char *name)¶ - Return value: New reference.
Пошук функції зворотного виклику обробки помилок, зареєстрованої під ім’ям. Як особливий випадок можна передати
NULL
, у цьому випадку буде повернено зворотний виклик обробки помилок для «strict».
-
PyObject*
PyCodec_IgnoreErrors
(PyObject *exc)¶ - Return value: New reference.
Ігноруйте помилку Юнікоду, пропускаючи неправильне введення.
-
PyObject*
PyCodec_ReplaceErrors
(PyObject *exc)¶ - Return value: New reference.
Замініть помилку кодування Unicode на
?
абоU+FFFD
.
-
PyObject*
PyCodec_XMLCharRefReplaceErrors
(PyObject *exc)¶ - Return value: New reference.
Замініть помилку кодування Unicode посиланнями на символи XML.