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