Chức năng hỗ trợ và đăng ký Codec

int PyCodec_Register(PyObject *search_function)
Một phần của ABI ổn định.

Đăng ký chức năng tìm kiếm codec mới.

Là một tác dụng phụ, điều này sẽ cố gắng tải gói encodings, nếu chưa được thực hiện, để đảm bảo rằng nó luôn ở vị trí đầu tiên trong danh sách các chức năng tìm kiếm.

int PyCodec_Unregister(PyObject *search_function)
Một phần của ABI ổn định kể từ phiên bản 3.10.

Hủy đăng ký chức năng tìm kiếm codec và xóa bộ đệm của sổ đăng ký. Nếu chức năng tìm kiếm chưa được đăng ký, không làm gì cả. Trả về 0 khi thành công. Đưa ra một ngoại lệ và trả về -1 nếu có lỗi.

Added in version 3.10.

int PyCodec_KnownEncoding(const char *encoding)
Một phần của ABI ổn định.

Trả về 1 hoặc 0 tùy thuộc vào việc có codec đã đăng ký cho encoding nhất định hay không. Chức năng này luôn thành công.

PyObject *PyCodec_Encode(PyObject *object, const char *encoding, const char *errors)
Giá trị trả về: Tham chiếu mới. Một phần của ABI ổn định.

Mã hóa dựa trên codec chung API.

object được chuyển qua hàm mã hóa được tìm thấy cho encoding đã cho bằng phương pháp xử lý lỗi do errors xác định. errors có thể là NULL để sử dụng phương thức mặc định được xác định cho codec. Tăng LookupError nếu không tìm thấy bộ mã hóa.

PyObject *PyCodec_Decode(PyObject *object, const char *encoding, const char *errors)
Giá trị trả về: Tham chiếu mới. Một phần của ABI ổn định.

Giải mã dựa trên codec chung API.

object được chuyển qua hàm giải mã được tìm thấy cho encoding đã cho bằng cách sử dụng phương pháp xử lý lỗi được xác định bởi errors. errors có thể là NULL để sử dụng phương thức mặc định được xác định cho codec. Tăng LookupError nếu không tìm thấy bộ giải mã.

Tra cứu codec API

Trong các hàm sau, chuỗi encoding được tra cứu được chuyển đổi thành tất cả các ký tự chữ thường, điều này làm cho các mã hóa tra cứu thông qua cơ chế này không phân biệt chữ hoa chữ thường một cách hiệu quả. Nếu không tìm thấy codec, KeyError được đặt và NULL được trả về.

PyObject *PyCodec_Encoder(const char *encoding)
Giá trị trả về: Tham chiếu mới. Một phần của ABI ổn định.

Nhận chức năng mã hóa cho encoding đã cho.

PyObject *PyCodec_Decoder(const char *encoding)
Giá trị trả về: Tham chiếu mới. Một phần của ABI ổn định.

Nhận chức năng giải mã cho encoding đã cho.

PyObject *PyCodec_IncrementalEncoder(const char *encoding, const char *errors)
Giá trị trả về: Tham chiếu mới. Một phần của ABI ổn định.

Nhận một đối tượng IncrementalEncoder cho encoding đã cho.

PyObject *PyCodec_IncrementalDecoder(const char *encoding, const char *errors)
Giá trị trả về: Tham chiếu mới. Một phần của ABI ổn định.

Nhận một đối tượng IncrementalDecoder cho encoding đã cho.

PyObject *PyCodec_StreamReader(const char *encoding, PyObject *stream, const char *errors)
Giá trị trả về: Tham chiếu mới. Một phần của ABI ổn định.

Nhận chức năng xuất xưởng StreamReader cho encoding đã cho.

PyObject *PyCodec_StreamWriter(const char *encoding, PyObject *stream, const char *errors)
Giá trị trả về: Tham chiếu mới. Một phần của ABI ổn định.

Nhận chức năng xuất xưởng StreamWriter cho encoding đã cho.

Đăng ký API để xử lý lỗi mã hóa Unicode

int PyCodec_RegisterError(const char *name, PyObject *error)
Một phần của ABI ổn định.

Đăng ký hàm gọi lại xử lý lỗi error theo name đã cho. Hàm gọi lại này sẽ được gọi bằng codec khi nó gặp các ký tự không thể mã hóa/byte không thể mã hóa và name được chỉ định làm tham số lỗi trong lệnh gọi hàm mã hóa/giải mã.

Lệnh gọi lại nhận một đối số duy nhất, một phiên bản của UnicodeEncodeError, UnicodeDecodeError hoặc UnicodeTranslateError chứa thông tin về chuỗi ký tự hoặc byte có vấn đề và độ lệch của chúng trong chuỗi gốc (xem Đối tượng ngoại lệ Unicode để biết các hàm trích xuất thông tin này). Cuộc gọi lại phải đưa ra ngoại lệ đã cho hoặc trả về một bộ dữ liệu gồm hai mục chứa sự thay thế cho chuỗi có vấn đề và một số nguyên cung cấp phần bù trong chuỗi gốc mà tại đó việc mã hóa/giải mã sẽ được tiếp tục.

Trả về 0 nếu thành công, -1 nếu có lỗi.

PyObject *PyCodec_LookupError(const char *name)
Giá trị trả về: Tham chiếu mới. Một phần của ABI ổn định.

Tra cứu hàm callback xử lý lỗi được đăng ký theo name. Vì trường hợp đặc biệt NULL có thể được thông qua, trong trường hợp đó lệnh gọi lại xử lý lỗi cho "nghiêm ngặt" sẽ được trả về.

PyObject *PyCodec_StrictErrors(PyObject *exc)
Giá trị trả về: Luôn NULL. Một phần của ABI ổn định.

Tăng exc như một ngoại lệ.

PyObject *PyCodec_IgnoreErrors(PyObject *exc)
Giá trị trả về: Tham chiếu mới. Một phần của ABI ổn định.

Bỏ qua lỗi unicode, bỏ qua đầu vào bị lỗi.

PyObject *PyCodec_ReplaceErrors(PyObject *exc)
Giá trị trả về: Tham chiếu mới. Một phần của ABI ổn định.

Thay thế lỗi mã hóa unicode bằng ? hoặc U+FFFD.

PyObject *PyCodec_XMLCharRefReplaceErrors(PyObject *exc)
Giá trị trả về: Tham chiếu mới. Một phần của ABI ổn định.

Thay thế lỗi mã hóa unicode bằng tham chiếu ký tự XML.

PyObject *PyCodec_BackslashReplaceErrors(PyObject *exc)
Giá trị trả về: Tham chiếu mới. Một phần của ABI ổn định.

Thay thế lỗi mã hóa unicode bằng dấu gạch chéo ngược thoát (\x, \u\U).

PyObject *PyCodec_NameReplaceErrors(PyObject *exc)
Giá trị trả về: Tham chiếu mới. Một phần của ABI ổn định kể từ phiên bản 3.7.

Thay thế lỗi mã hóa unicode bằng lối thoát \N{...}.

Added in version 3.5.

Biến tiện ích Codec

const char *Py_hexdigits

Một hằng chuỗi chứa các chữ số thập lục phân viết thường: "0123456789abcdef".

Added in version 3.3.