Unicode để đọc chính tả Python

Python [currently] does not allow non-ASCII identifiers, so it's not surprising that Unicode parameter names don't work.

It's also a really bad idea to pass data from an AJAX XML or JSON request directly to a function without doing at least some post-processing of the data in order to prevent DOS attacks, code injection, etc.

dict[[str[key], value] for key, value in kw.iteritems[]] is all that's needed for the above. 

BTW, I don't think those few micro-seconds really matter in the face of XML or JSON decoding, network latency, etc. ;-]

Kể từ khi triển khai PEP 393 trong Python 3. 3, Các đối tượng Unicode bên trong sử dụng nhiều cách biểu diễn khác nhau, để cho phép xử lý toàn bộ phạm vi ký tự Unicode trong khi vẫn duy trì hiệu quả bộ nhớ. Có những trường hợp đặc biệt đối với các chuỗi có tất cả các điểm mã dưới 128, 256 hoặc 65536;

* và các biểu diễn UTF-8 được tạo theo yêu cầu và được lưu vào bộ đệm trong đối tượng Unicode. Biểu diễn * không được dùng nữa và không hiệu quả.

Do quá trình chuyển đổi giữa API cũ và API mới, các đối tượng Unicode bên trong có thể ở hai trạng thái tùy thuộc vào cách chúng được tạo

  • Các đối tượng Unicode “chính tắc” là tất cả các đối tượng được tạo bởi API Unicode không được dùng nữa. Họ sử dụng đại diện hiệu quả nhất cho phép thực hiện

  • Các đối tượng Unicode “cũ” đã được tạo thông qua một trong các API không dùng nữa [thường là ] và chỉ mang biểu tượng * ; .

Ghi chú

Đối tượng Unicode “cũ” sẽ bị xóa trong Python 3. 12 với các API không dùng nữa. Tất cả các đối tượng Unicode sẽ là "chuẩn" kể từ đó. Xem PEP 623 để biết thêm thông tin

Loại Unicode

Đây là các loại đối tượng Unicode cơ bản được sử dụng để triển khai Unicode trong Python

loại Py_UCS4
loại Py_UCS2
loại Py_UCS1
Part of the .

Các loại này là typedefs cho các loại số nguyên không dấu đủ rộng để chứa các ký tự lần lượt là 32 bit, 16 bit và 8 bit. Khi xử lý các ký tự Unicode đơn lẻ, hãy sử dụng

Mới trong phiên bản 3. 3

type Py_UNICODE

Đây là typedef của wchar_t , .

Đã thay đổi trong phiên bản 3. 3. Trong các phiên bản trước, đây là loại 16 bit hoặc 32 bit tùy thuộc vào việc bạn đã chọn phiên bản Unicode “hẹp” hay “rộng” của Python khi xây dựng.

loại PyASCIIObject
loại PyCompactUnicodeObject
loại PyUnicodeObject

These subtypes of represent a Python Unicode object. In almost all cases, they shouldn’t be used directly, since all API functions that deal with Unicode objects take and return pointers.

Mới trong phiên bản 3. 3

PyUnicode_Type
Một phần của.

Ví dụ này đại diện cho loại Python Unicode. Nó được hiển thị với mã Python là

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
6

Các API sau đây là các macro C và các hàm nội tuyến tĩnh để kiểm tra nhanh và truy cập vào dữ liệu chỉ đọc nội bộ của các đối tượng Unicode

int PyUnicode_Check[ *o]

Return true if the object o is a Unicode object or an instance of a Unicode subtype. This function always succeeds.

int PyUnicode_CheckExact[ *o]

Return true if the object o is a Unicode object, but not an instance of a subtype. This function always succeeds.

int PyUnicode_READY[ *o]

Ensure the string object o is in the “canonical” representation. This is required before using any of the access macros described below.

Trả về

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
7 nếu thành công và
*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
0 với một ngoại lệ được đặt khi thất bại, điều này đặc biệt xảy ra nếu cấp phát bộ nhớ không thành công

Mới trong phiên bản 3. 3

Không dùng nữa kể từ phiên bản 3. 10, sẽ bị xóa trong phiên bản 3. 12. API này sẽ bị xóa cùng với.

PyUnicode_GET_LENGTH[ *o]

Return the length of the Unicode string, in code points. o has to be a Unicode object in the “canonical” representation [not checked].

Mới trong phiên bản 3. 3

*PyUnicode_1BYTE_DATA[ *o]
*PyUnicode_2BYTE_DATA[ *o]
*PyUnicode_4BYTE_DATA[ *o]

Return a pointer to the canonical representation cast to UCS1, UCS2 or UCS4 integer types for direct character access. No checks are performed if the canonical representation has the correct character size; use to select the right macro. Make sure has been called before accessing this.

Mới trong phiên bản 3. 3

PyUnicode_WCHAR_KIND
PyUnicode_1BYTE_KIND
PyUnicode_2BYTE_KIND
PyUnicode_4BYTE_KIND

Trả về giá trị của macro.

Mới trong phiên bản 3. 3

Không dùng nữa kể từ phiên bản 3. 10, sẽ bị xóa trong phiên bản 3. 12. ______15 không được dùng nữa.

int PyUnicode_KIND[ *o]

Return one of the PyUnicode kind constants [see above] that indicate how many bytes per character this Unicode object uses to store its data. o has to be a Unicode object in the “canonical” representation [not checked].

Mới trong phiên bản 3. 3

void *PyUnicode_DATA[ *o]

Return a void pointer to the raw Unicode buffer. o has to be a Unicode object in the “canonical” representation [not checked].

Mới trong phiên bản 3. 3

void PyUnicode_WRITE[int loại, void *data, index, value]

Write into a canonical representation data [as obtained with ]. This function performs no sanity checks, and is intended for usage in loops. The caller should cache the kind value and data pointer as obtained from other calls. index is the index in the string [starts at 0] and value is the new code point value which should be written to that location.

Mới trong phiên bản 3. 3

PyUnicode_READ[int loại , void *data, index]

Read a code point from a canonical representation data [as obtained with ]. No checks or ready calls are performed.

Mới trong phiên bản 3. 3

PyUnicode_READ_CHAR[ *o , index]

Read a character from a Unicode object o, which must be in the “canonical” representation. This is less efficient than if you do multiple consecutive reads.

Mới trong phiên bản 3. 3

PyUnicode_MAX_CHAR_VALUE[ *o]

Return the maximum code point that is suitable for creating another string based on o, which must be in the “canonical” representation. This is always an approximation but more efficient than iterating over the string.

Mới trong phiên bản 3. 3

PyUnicode_GET_SIZE[ *o]

Return the size of the deprecated representation, in code units [this includes surrogate pairs as 2 units]. o has to be a Unicode object [not checked].

Không dùng nữa kể từ phiên bản 3. 3, sẽ bị xóa trong phiên bản 3. 12. Một phần của API Unicode kiểu cũ, vui lòng chuyển sang sử dụng.

PyUnicode_GET_DATA_SIZE[ *o]

Return the size of the deprecated representation in bytes. o has to be a Unicode object [not checked].

Không dùng nữa kể từ phiên bản 3. 3, sẽ bị xóa trong phiên bản 3. 12. Một phần của API Unicode kiểu cũ, vui lòng chuyển sang sử dụng.

*PyUnicode_AS_UNICODE[ *o]
const char *PyUnicode_AS_DATA[ *o]

Return a pointer to a representation of the object. The returned buffer is always terminated with an extra null code point. It may also contain embedded null code points, which would cause the string to be truncated when used in most C functions. The

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
84 form casts the pointer to const char* . Đối số o phải là một đối tượng Unicode [không được chọn].

Đã thay đổi trong phiên bản 3. 3. Chức năng này hiện không hiệu quả – bởi vì trong nhiều trường hợp, biểu diễn không tồn tại và cần được tạo – và có thể không thành công [trả về

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
86 với một bộ ngoại lệ]. Cố gắng chuyển mã để sử dụng macro
*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
87 mới hoặc sử dụng hoặc.

Không dùng nữa kể từ phiên bản 3. 3, sẽ bị xóa trong phiên bản 3. 12. Một phần của API Unicode kiểu cũ, vui lòng chuyển sang sử dụng dòng macro

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
87.

int PyUnicode_IsIdentifier[ *o]
Part of the .

Trả về

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
21 nếu chuỗi là một mã định danh hợp lệ theo định nghĩa ngôn ngữ, mục. Trả lại
*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
7 nếu không

Đã thay đổi trong phiên bản 3. 9. Hàm không gọi nữa nếu chuỗi chưa sẵn sàng.

Thuộc tính ký tự Unicode

Unicode cung cấp nhiều thuộc tính ký tự khác nhau. Những cái thường cần nhất có sẵn thông qua các macro này được ánh xạ tới các hàm C tùy thuộc vào cấu hình Python

int Py_UNICODE_ISSPACE[ ch]

Return

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
21 or
*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
7 depending on whether ch is a whitespace character.

int Py_UNICODE_ISLOWER[ ch]

Return

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
21 or
*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
7 depending on whether ch is a lowercase character.

int Py_UNICODE_ISUPPER[ ch]

Return

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
21 or
*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
7 depending on whether ch is an uppercase character.

int Py_UNICODE_ISTITLE[ ch]

Return

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
21 or
*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
7 depending on whether ch is a titlecase character.

int Py_UNICODE_ISLINEBREAK[ ch]

Return

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
21 or
*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
7 depending on whether ch is a linebreak character.

int Py_UNICODE_ISDECIMAL[ ch]

Return

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
21 or
*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
7 depending on whether ch is a decimal character.

int Py_UNICODE_ISDIGIT[ ch]

Return

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
21 or
*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
7 depending on whether ch is a digit character.

int Py_UNICODE_ISNUMERIC[ ch]

Return

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
21 or
*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
7 depending on whether ch is a numeric character.

int Py_UNICODE_ISALPHA[ ch]

Return

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
21 or
*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
7 depending on whether ch is an alphabetic character.

int Py_UNICODE_ISALNUM[ ch]

Return

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
21 or
*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
7 depending on whether ch is an alphanumeric character.

int Py_UNICODE_ISPRINTABLE[ ch]

Return

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
21 or
*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
7 depending on whether ch is a printable character. Nonprintable characters are those characters defined in the Unicode character database as “Other” or “Separator”, excepting the ASCII space [0x20] which is considered printable. [Note that printable characters in this context are those which should not be escaped when is invoked on a string. It has no bearing on the handling of strings written to or .]

Các API này có thể được sử dụng để chuyển đổi ký tự trực tiếp nhanh chóng

Py_UNICODE_TOLOWER[ ch]

Trả về ký tự ch đã chuyển đổi .

Không dùng nữa kể từ phiên bản 3. 3. Hàm này sử dụng ánh xạ trường hợp đơn giản.

Py_UNICODE_TOUPPER[ ch]

Trả về ký tự ch đã chuyển đổi .

Không dùng nữa kể từ phiên bản 3. 3. Hàm này sử dụng ánh xạ trường hợp đơn giản.

Py_UNICODE_TOTITLE[ ch]

Trả về ký tự ch đã chuyển đổi .

Không dùng nữa kể từ phiên bản 3. 3. Hàm này sử dụng ánh xạ trường hợp đơn giản.

int Py_UNICODE_TODECIMAL[ ch]

Return the character ch converted to a decimal positive integer. Return

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
0 if this is not possible. This macro does not raise exceptions.

int Py_UNICODE_TODIGIT[ ch]

Return the character ch converted to a single digit integer. Return

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
0 if this is not possible. This macro does not raise exceptions.

nhân đôi Py_UNICODE_TONUMERIC[ ch]

Return the character ch converted to a double. Return

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
161 if this is not possible. This macro does not raise exceptions.

Các API này có thể được sử dụng để làm việc với các chất thay thế

Py_UNICODE_IS_SURROGATE[ch]

Kiểm tra xem ch có phải là .

Py_UNICODE_IS_HIGH_SURROGATE[ch]

Kiểm tra xem ch có phải là .

Py_UNICODE_IS_LOW_SURROGATE[ch]

Kiểm tra xem ch có phải là .

Py_UNICODE_JOIN_SURROGATES[cao , thấp]

Join two surrogate characters and return a single Py_UCS4 value. high and low are respectively the leading and trailing surrogates in a surrogate pair.

Tạo và truy cập chuỗi Unicode

Để tạo các đối tượng Unicode và truy cập các thuộc tính trình tự cơ bản của chúng, hãy sử dụng các API này

*PyUnicode_New[ kích thước , maxchar]
Return value: New reference.

Tạo một đối tượng Unicode mới. maxchar phải là điểm mã tối đa thực sự được đặt trong chuỗi. Là một giá trị gần đúng, nó có thể được làm tròn đến giá trị gần nhất trong dãy 127, 255, 65535, 1114111

Đây là cách được đề xuất để phân bổ một đối tượng Unicode mới. Các đối tượng được tạo bằng chức năng này không thể thay đổi kích thước

Mới trong phiên bản 3. 3

*PyUnicode_FromKindAndData[int loại, const void *buffer, size]
Return value: New reference.

Tạo một đối tượng Unicode mới với loại đã cho [các giá trị có thể là, v.v. , như được trả về bởi ]. Bộ đệm phải trỏ đến một mảng có đơn vị kích thước là 1, 2 hoặc 4 byte cho mỗi ký tự, tùy theo loại

Nếu cần, bộ đệm đầu vào được sao chép và chuyển thành biểu diễn chính tắc. Ví dụ: nếu bộ đệm là một chuỗi UCS4 [] và nó chỉ bao gồm các điểm mã trong phạm vi UCS1, thì nó sẽ được chuyển đổi thành UCS1 []

Mới trong phiên bản 3. 3

*PyUnicode_FromStringAndSize[const char *u, size]
Return value: New reference. Part of the .

Tạo một đối tượng Unicode từ bộ đệm char u. Các byte sẽ được hiểu là được mã hóa UTF-8. Bộ đệm được sao chép vào đối tượng mới. Nếu bộ đệm không phải là

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
86, giá trị trả về có thể là một đối tượng dùng chung, tôi. e. sửa đổi dữ liệu không được phép

Nếu bạn là

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
86, chức năng này hoạt động giống như với bộ đệm được đặt thành
*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
86. Cách sử dụng này không được dùng nữa và sẽ bị xóa trong Python 3. 12

*PyUnicode_FromString[const char *u]
Return value: New reference. Part of the .

Tạo một đối tượng Unicode từ bộ đệm char kết thúc null được mã hóa UTF-8 u

*PyUnicode_FromFormat[const char *format, ...]
Trả về giá trị. Tài liệu tham khảo mới. một phần của.

Lấy một chuỗi định dạng kiểu C

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
234 và một số lượng đối số khác nhau, tính toán kích thước của chuỗi Python Unicode kết quả và trả về một chuỗi có các giá trị được định dạng trong đó. Các đối số của biến phải là loại C và phải tương ứng chính xác với các ký tự định dạng ở định dạng chuỗi mã hóa ASCII. Các ký tự định dạng sau được cho phép

định dạng ký tự

Loại

Bình luận

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
235

không có

Ký tự % theo nghĩa đen

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
236

int

Một ký tự đơn, được biểu diễn dưới dạng C int

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
237

int

Tương đương với

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
238.

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
239

int không dấu

Tương đương với

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
60.

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
61

Dài

Tương đương với

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
62.

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
63

Dài

Tương đương với

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
64.

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
65

không dấu dài

Tương đương với

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
66.

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
67

dài dài

Tương đương với

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
68.

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
69

dài dài

Tương đương với

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
70.

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
71

không dấu lâu dài

Tương đương với

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
72.

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
73

Tương đương với

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
75.

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
76

Tương đương với

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
78.

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
79

size_t

Tương đương với

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
00.

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
01

int

Tương đương với

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
02.

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
03

int

Tương đương với

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
04.

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
05

const ký tự *

Một mảng ký tự C kết thúc null

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
06

const void*

Biểu diễn hex của con trỏ C. Hầu hết tương đương với

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
07 ngoại trừ việc nó được đảm bảo bắt đầu bằng
*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
08 theo nghĩa đen bất kể sản lượng của
*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
09 của nền tảng là gì

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
10

PyObject*

Kết quả của cuộc gọi

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
12

PyObject*

Đối tượng Unicode

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
13

PyObject*, const char*

Một đối tượng Unicode [có thể là

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
86] và một mảng ký tự C kết thúc bằng null làm tham số thứ hai [sẽ được sử dụng nếu tham số đầu tiên là
*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
86]

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
16

PyObject*

Kết quả của cuộc gọi

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
18

PyObject*

Kết quả của cuộc gọi

Một ký tự định dạng không được nhận dạng khiến tất cả phần còn lại của chuỗi định dạng được sao chép nguyên trạng vào chuỗi kết quả và mọi đối số bổ sung bị loại bỏ

Ghi chú

Đơn vị định dạng chiều rộng là số ký tự chứ không phải byte. Đơn vị định dạng chính xác là số byte cho

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
20 và
*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
21 [nếu đối số
*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
22 là
*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
86] và một số ký tự cho
*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
24,
*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
25,
*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
26,
*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
27 và
*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
21 [nếu đối số
*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
22 không phải là
*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
86]

1[,,,,,,,,,,,,]

Đối với các chỉ định số nguyên [d, u, ld, li, lu, lld, lli, llu, zd, zi, zu, i, x]. cờ chuyển đổi 0 có hiệu lực ngay cả khi độ chính xác được cung cấp

Đã thay đổi trong phiên bản 3. 2. Đã thêm hỗ trợ cho

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
31 và
*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
32.

Đã thay đổi trong phiên bản 3. 3. Đã thêm hỗ trợ cho

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
33,
*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
34 và
*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
35.

Đã thay đổi trong phiên bản 3. 4. Hỗ trợ định dạng độ rộng và độ chính xác cho

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
20,
*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
24,
*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
25,
*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
21,
*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
26,
*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
27 đã được thêm vào.

*PyUnicode_FromFormatV[const char *format, va_list vargs]
Return value: New reference. Part of the .

Giống hệt ngoại trừ việc nó nhận đúng hai đối số

*PyUnicode_FromEncodedObject[ *obj, const char *encoding, const char *errors]
Return value: New reference. Part of the .

Giải mã một đối tượng được mã hóa obj thành một đối tượng Unicode

và khác được giải mã theo mã hóa nhất định và sử dụng xử lý lỗi được xác định bởi lỗi. Cả hai đều có thể là

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
86 để giao diện sử dụng các giá trị mặc định [xem để biết chi tiết]

Tất cả các đối tượng khác, bao gồm các đối tượng Unicode, khiến a được đặt

API trả về

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
86 nếu có lỗi. Người gọi chịu trách nhiệm giải mã các đối tượng được trả về

PyUnicode_GetLength[ *unicode]
Part of the since version 3.7.

Trả về độ dài của đối tượng Unicode, tính bằng điểm mã

Mới trong phiên bản 3. 3

PyUnicode_Copy Characters[ *đến , to_start, *from, from_start, how_many]

Copy characters from one Unicode object into another. This function performs character conversion when necessary and falls back to

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
48 if possible. Returns
*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
0 and sets an exception on error, otherwise returns the number of copied characters.

Mới trong phiên bản 3. 3

PyUnicode_Fill[ *unicode , start, length, fill_char]

Fill a string with a character: write fill_char into

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
50.

Không thành công nếu fill_char lớn hơn ký tự tối đa của chuỗi hoặc nếu chuỗi có nhiều hơn 1 tham chiếu

Trả về số lượng ký tự đã viết hoặc trả về

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
0 và đưa ra một ngoại lệ khi có lỗi

Mới trong phiên bản 3. 3

int PyUnicode_WriteChar[ *unicode, index, character]
Part of the since version 3.7.

Viết một ký tự vào một chuỗi. Chuỗi phải được tạo thông qua. Vì các chuỗi Unicode được cho là không thay đổi nên chuỗi này không được chia sẻ hoặc chưa được băm

Hàm này kiểm tra xem unicode có phải là đối tượng Unicode không, chỉ mục có nằm ngoài giới hạn không và đối tượng có thể được sửa đổi một cách an toàn [i. e. rằng số tham chiếu của nó là một]

Mới trong phiên bản 3. 3

PyUnicode_ReadChar[ *unicode , index]
Part of the since version 3.7.

Đọc một ký tự từ một chuỗi. Hàm này kiểm tra xem unicode có phải là đối tượng Unicode không và chỉ mục không nằm ngoài giới hạn, ngược lại, hàm này không thực hiện kiểm tra lỗi

Mới trong phiên bản 3. 3

*PyUnicode_Substring[ *str, start, end]
Return value: New reference. Part of the since version 3.7.

Trả về một chuỗi con của str, từ bắt đầu chỉ mục ký tự [bao gồm] đến kết thúc chỉ mục ký tự [không bao gồm]. Chỉ số tiêu cực không được hỗ trợ

Mới trong phiên bản 3. 3

*PyUnicode_AsUCS4[ *u, *buffer, buflen, int copy_null]
Part of the since version 3.7.

Sao chép chuỗi u vào bộ đệm UCS4, bao gồm ký tự null, nếu copy_null được đặt. Trả về

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
86 và đặt ngoại lệ cho lỗi [cụ thể là a nếu buflen nhỏ hơn độ dài của u]. bộ đệm được trả lại khi thành công

Mới trong phiên bản 3. 3

*PyUnicode_AsUCS4Copy[ *u]
Part of the since version 3.7.

Sao chép chuỗi u vào bộ đệm UCS4 mới được phân bổ bằng cách sử dụng. Nếu điều này không thành công,

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
86 được trả lại với một bộ. Bộ đệm được trả về luôn có thêm một điểm mã rỗng được thêm vào

Mới trong phiên bản 3. 3

API Py_UNICODE không dùng nữa

Không dùng nữa kể từ phiên bản 3. 3, sẽ bị xóa trong phiên bản 3. 12

Các chức năng API này không được dùng nữa khi triển khai PEP 393. Các mô-đun mở rộng có thể tiếp tục sử dụng chúng vì chúng sẽ không bị xóa trong Python 3. x, nhưng cần lưu ý rằng việc sử dụng chúng hiện có thể gây ra các lỗi về hiệu suất và bộ nhớ

*PyUnicode_FromUnicode[const *u, size]
Return value: New reference.

Tạo một đối tượng Unicode từ bộ đệm Py_UNICODE u với kích thước đã cho. bạn có thể là

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
86 khiến nội dung không được xác định. Người dùng có trách nhiệm điền các dữ liệu cần thiết. Bộ đệm được sao chép vào đối tượng mới

Nếu bộ đệm không phải là

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
86, giá trị trả về có thể là một đối tượng được chia sẻ. Do đó, việc sửa đổi đối tượng Unicode kết quả chỉ được phép khi bạn là
*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
86

Nếu bộ đệm là

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
86, phải được gọi sau khi nội dung chuỗi đã được điền trước khi sử dụng bất kỳ macro truy cập nào, chẳng hạn như

Không dùng nữa kể từ phiên bản 3. 3, sẽ bị xóa trong phiên bản 3. 12. Một phần của API Unicode kiểu cũ, vui lòng chuyển sang sử dụng , , hoặc.

*PyUnicode_AsUnicode[ *unicode]

Return a read-only pointer to the Unicode object’s internal buffer, or

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
86 on error. This will create the * của đối tượng nếu nó chưa có sẵn. Bộ đệm luôn được kết thúc bằng một điểm mã null bổ sung. Lưu ý rằng chuỗi kết quả cũng có thể chứa các điểm mã null được nhúng, điều này sẽ khiến chuỗi bị cắt bớt khi được sử dụng trong hầu hết các hàm C.

Không dùng nữa kể từ phiên bản 3. 3, sẽ bị xóa trong phiên bản 3. 12. Một phần của API Unicode kiểu cũ, vui lòng chuyển sang sử dụng , hoặc các API mới tương tự.

*PyUnicode_AsUnicodeAndSize[ *unicode, *size]

Like , but also saves the array length [excluding the extra null terminator] in size. Note that the resulting * có thể chứa các điểm mã null được nhúng, điều này sẽ khiến chuỗi bị cắt bớt khi được sử dụng trong hầu hết các hàm C.

Mới trong phiên bản 3. 3

Không dùng nữa kể từ phiên bản 3. 3, sẽ bị xóa trong phiên bản 3. 12. Một phần của API Unicode kiểu cũ, vui lòng chuyển sang sử dụng , hoặc các API mới tương tự.

PyUnicode_GetSize[ *unicode]
Part of the .

Trả về kích thước của biểu diễn không dùng nữa, theo đơn vị mã [điều này bao gồm các cặp thay thế dưới dạng 2 đơn vị]

Không dùng nữa kể từ phiên bản 3. 3, sẽ bị xóa trong phiên bản 3. 12. Một phần của API Unicode kiểu cũ, vui lòng chuyển sang sử dụng.

*PyUnicode_FromObject[ *obj]
Return value: New reference. Part of the .

Sao chép một thể hiện của kiểu con Unicode sang một đối tượng Unicode thực sự mới nếu cần. Nếu obj đã là một đối tượng Unicode thực sự [không phải là một kiểu con], hãy trả về tham chiếu với số lần đếm tăng dần

Các đối tượng không phải là Unicode hoặc các kiểu con của nó sẽ gây ra lỗi

Mã hóa ngôn ngữ

Mã hóa ngôn ngữ hiện tại có thể được sử dụng để giải mã văn bản từ hệ điều hành

*PyUnicode_DecodeLocaleAndSize[const char *str, len, const char *errors]
Return value: New reference. Part of the since version 3.7.

Giải mã một chuỗi từ UTF-8 trên Android và VxWorks hoặc từ mã hóa ngôn ngữ hiện tại trên các nền tảng khác. Trình xử lý lỗi được hỗ trợ là

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
82 và
*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
83 [PEP 383]. Bộ giải mã sử dụng trình xử lý lỗi
*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
82 nếu lỗi là
*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
86. str phải kết thúc bằng ký tự null nhưng không thể chứa ký tự null được nhúng

Sử dụng để giải mã một chuỗi từ

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
87 [mã hóa ngôn ngữ được đọc khi khởi động Python]

Chức năng này bỏ qua các

Xem thêm

Chức năng

Mới trong phiên bản 3. 3

Đã thay đổi trong phiên bản 3. 7. Chức năng hiện cũng sử dụng mã hóa ngôn ngữ hiện tại cho trình xử lý lỗi

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
89, ngoại trừ trên Android. Trước đây, được sử dụng cho
*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
89 và mã hóa ngôn ngữ hiện tại được sử dụng cho
*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
92.

*PyUnicode_DecodeLocale[const char *str, const char *errors]
Return value: New reference. Part of the since version 3.7.

Tương tự như , nhưng tính toán độ dài chuỗi bằng cách sử dụng

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
94

Mới trong phiên bản 3. 3

*PyUnicode_EncodeLocale[ *unicode, const char *errors]
Return value: New reference. Part of the since version 3.7.

Mã hóa một đối tượng Unicode thành UTF-8 trên Android và VxWorks hoặc mã hóa ngôn ngữ hiện tại trên các nền tảng khác. Trình xử lý lỗi được hỗ trợ là

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
82 và
*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
83 [PEP 383]. Bộ mã hóa sử dụng trình xử lý lỗi
*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
82 nếu lỗi là
*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
86. Trả lại một đối tượng. unicode không thể chứa các ký tự null được nhúng

Sử dụng để mã hóa một chuỗi thành

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
87 [mã hóa ngôn ngữ được đọc khi khởi động Python]

Chức năng này bỏ qua các

Xem thêm

Chức năng

Mới trong phiên bản 3. 3

Đã thay đổi trong phiên bản 3. 7. Chức năng hiện cũng sử dụng mã hóa ngôn ngữ hiện tại cho trình xử lý lỗi

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
89, ngoại trừ trên Android. Trước đây, được sử dụng cho
*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
89 và mã hóa ngôn ngữ hiện tại được sử dụng cho
*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
92.

Mã hóa hệ thống tệp

Để mã hóa và giải mã tên tệp và các chuỗi môi trường khác, nên sử dụng

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
87 làm mã hóa và nên sử dụng
*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
808 làm trình xử lý lỗi [PEP 383 và PEP 529]. Để mã hóa tên tệp thành trong quá trình phân tích cú pháp đối số, nên sử dụng bộ chuyển đổi
*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
810, chuyển dưới dạng hàm chuyển đổi

int PyUnicode_FSConverter[ *obj, void *result]
Part of the .

Trình chuyển đổi ParseTuple. mã hóa các đối tượng – thu được trực tiếp hoặc thông qua giao diện – để sử dụng ; . kết quả phải là * phải được giải phóng khi không còn được sử dụng.

Mới trong phiên bản 3. 1

Đã thay đổi trong phiên bản 3. 6. Chấp nhận một.

Để giải mã tên tệp thành trong quá trình phân tích cú pháp đối số, nên sử dụng trình chuyển đổi

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
810, chuyển dưới dạng hàm chuyển đổi

int PyUnicode_FSDecoder[ *obj, void *result]
Part of the .

Trình chuyển đổi ParseTuple. giải mã các đối tượng – thu được trực tiếp hoặc gián tiếp thông qua giao diện – để sử dụng; . kết quả phải là * phải được giải phóng khi không còn được sử dụng.

Mới trong phiên bản 3. 2

Đã thay đổi trong phiên bản 3. 6. Chấp nhận một.

*PyUnicode_DecodeFSDefaultAndSize[const char *s, size]
Return value: New reference. Part of the .

Giải mã một chuỗi từ

Nếu

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
87 không được đặt, hãy quay lại mã hóa ngôn ngữ

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
87 được khởi tạo khi khởi động từ mã hóa ngôn ngữ và không thể sửa đổi sau này. Nếu bạn cần giải mã một chuỗi từ mã hóa ngôn ngữ hiện tại, hãy sử dụng

Xem thêm

Chức năng

Đã thay đổi trong phiên bản 3. 6. Sử dụng trình xử lý lỗi

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
808.

*PyUnicode_DecodeFSDefault[const char *s]
Return value: New reference. Part of the .

Giải mã một chuỗi kết thúc null từ

Nếu

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
87 không được đặt, hãy quay lại mã hóa ngôn ngữ

Sử dụng nếu bạn biết độ dài chuỗi

Đã thay đổi trong phiên bản 3. 6. Sử dụng trình xử lý lỗi

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
808.

*PyUnicode_EncodeFSDefault[ *unicode]
Return value: New reference. Part of the .

Mã hóa một đối tượng Unicode thành

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
87 bằng trình xử lý lỗi
*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
808 và trả về. Lưu ý rằng đối tượng kết quả có thể chứa byte rỗng

Nếu

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
87 không được đặt, hãy quay lại mã hóa ngôn ngữ

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
87 được khởi tạo khi khởi động từ mã hóa ngôn ngữ và không thể sửa đổi sau này. Nếu bạn cần mã hóa một chuỗi thành mã hóa ngôn ngữ hiện tại, hãy sử dụng

Xem thêm

Chức năng

Mới trong phiên bản 3. 2

Đã thay đổi trong phiên bản 3. 6. Sử dụng trình xử lý lỗi

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
808.

hỗ trợ wchar_t

wchar_t hỗ trợ cho các nền tảng hỗ trợ nó.

*PyUnicode_FromWideChar[const wchar_t *w, size]
Return value: New reference. Part of the .

Tạo đối tượng Unicode từ bộ đệm wchar_t w có kích thước đã cho. Chuyển

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
0 làm kích thước cho biết hàm phải tự tính toán độ dài, sử dụng wcslen. Trả lại
*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
86 khi thất bại.

PyUnicode_AsWideChar[ *unicode , wchar_t *w, size]
Part of the .

Sao chép nội dung đối tượng Unicode vào bộ đệm wchar_t w. Hầu hết các ký tự có kích thước wchar_t được sao chép [ngoại trừ ký tự kết thúc null có thể ở cuối]. Trả về số lượng wchar_t ký tự được sao chép hoặc

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
0 trong trường hợp có lỗi. Lưu ý rằng chuỗi kết quả wchar_t* có thể hoặc không thể kết thúc bằng null. Người gọi có trách nhiệm đảm bảo rằng chuỗi wchar_t* bị chấm dứt null trong trường hợp này . Ngoài ra, hãy lưu ý rằng chuỗi wchar_t* có thể chứa các ký tự null, điều này sẽ khiến chuỗi bị cắt bớt khi sử dụng .

wchar_t *PyUnicode_AsWideCharString[ *unicode, *size]
Part of the since version 3.7.

Chuyển đổi đối tượng Unicode thành chuỗi ký tự rộng. Chuỗi đầu ra luôn kết thúc bằng ký tự null. Nếu kích thước không phải là

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
86, hãy viết số lượng ký tự rộng [không bao gồm ký tự kết thúc null ở cuối] vào *size. Lưu ý rằng chuỗi wchar_t kết quả có thể chứa các ký tự null, điều này sẽ khiến chuỗi bị cắt bớt khi được sử dụng với hầu hết các hàm C. Nếu kích thước là
*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
86 và wchar_t* chuỗi chứa ký tự null a được nâng lên.

Trả về bộ đệm được phân bổ bởi

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
848 [sử dụng để giải phóng nó] khi thành công. Khi có lỗi, trả về
*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
86 và *size không xác định. Tăng a nếu cấp phát bộ nhớ không thành công

Mới trong phiên bản 3. 2

Đã thay đổi trong phiên bản 3. 7. Tăng a nếu kích thước là

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
86 và wchar_t* chuỗi chứa các ký tự null.

Codec tích hợp

Python cung cấp một bộ codec tích hợp được viết bằng C để tăng tốc. Tất cả các codec này đều có thể sử dụng trực tiếp thông qua các chức năng sau

Nhiều API sau đây có hai đối số mã hóa và lỗi, đồng thời chúng có cùng ngữ nghĩa với các API của hàm tạo đối tượng chuỗi tích hợp

Đặt mã hóa thành

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
86 khiến mã hóa mặc định được sử dụng là UTF-8. Các cuộc gọi hệ thống tệp nên sử dụng để mã hóa tên tệp. Điều này sử dụng biến
*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
87 trong nội bộ. Biến này nên được coi là chỉ đọc. trên một số hệ thống, nó sẽ là một con trỏ tới một chuỗi tĩnh, trên những hệ thống khác, nó sẽ thay đổi trong thời gian chạy [chẳng hạn như khi ứng dụng gọi setlocale]

Xử lý lỗi được đặt theo lỗi cũng có thể được đặt thành

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
86 nghĩa là sử dụng xử lý mặc định được xác định cho codec. Xử lý lỗi mặc định cho tất cả các codec tích hợp là "nghiêm ngặt" [ được nâng lên]

Tất cả các codec đều sử dụng một giao diện tương tự. Chỉ những sai lệch so với những cái chung sau đây được ghi lại để đơn giản

Codec chung

Đây là các API codec chung

*PyUnicode_Decode[const char *s, size, const char *encoding, const char *errors]
Return value: New reference. Part of the .

Tạo một đối tượng Unicode bằng cách giải mã byte kích thước của chuỗi được mã hóa s. mã hóa và lỗi có cùng ý nghĩa với các tham số cùng tên trong hàm tích hợp. Codec được sử dụng được tra cứu bằng sổ đăng ký codec Python. Trả lại

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
86 nếu codec đưa ra ngoại lệ

*PyUnicode_AsEncodedString[ *unicode, const char *encoding, const char *errors]
Return value: New reference. Part of the .

Mã hóa đối tượng Unicode và trả về kết quả dưới dạng đối tượng byte Python. mã hóa và lỗi có cùng ý nghĩa với các tham số cùng tên trong phương thức Unicode. Codec được sử dụng được tra cứu bằng sổ đăng ký codec Python. Trả lại

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
86 nếu codec đưa ra ngoại lệ

Bộ giải mã UTF-8

Đây là các API codec UTF-8

*PyUnicode_DecodeUTF8[const char *s, size, const char *errors]
Return value: New reference. Part of the .

Tạo một đối tượng Unicode bằng cách giải mã byte kích thước của chuỗi được mã hóa UTF-8 s. Trả lại

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
86 nếu codec đưa ra ngoại lệ

*PyUnicode_DecodeUTF8Stateful[const char *s, size, const char *errors, *consumed]
Return value: New reference. Part of the .

Nếu tiêu thụ là

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
86, cư xử như. Nếu mức tiêu thụ không phải là
*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
86, thì các chuỗi byte UTF-8 không đầy đủ ở cuối sẽ không được coi là lỗi. Các byte đó sẽ không được giải mã và số byte đã được giải mã sẽ được lưu trữ trong tiêu thụ

*PyUnicode_AsUTF8String[ *unicode]
Return value: New reference. Part of the .

Mã hóa đối tượng Unicode bằng UTF-8 và trả về kết quả dưới dạng đối tượng byte Python. Xử lý lỗi là "nghiêm ngặt". Trả lại

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
86 nếu codec đưa ra ngoại lệ

const char *PyUnicode_AsUTF8AndSize[ *unicode, *size]
Part of the since version 3.10.

Trả về một con trỏ tới mã hóa UTF-8 của đối tượng Unicode và lưu trữ kích thước của biểu diễn được mã hóa [tính bằng byte] trong kích thước. Đối số kích thước có thể là

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
86; . Bộ đệm được trả về luôn có thêm một byte null được thêm vào [không bao gồm trong kích thước], bất kể có bất kỳ điểm mã null nào khác hay không

Trong trường hợp có lỗi,

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
86 được trả về với một bộ ngoại lệ và không có kích thước nào được lưu trữ

Điều này lưu trữ biểu diễn UTF-8 của chuỗi trong đối tượng Unicode và các lệnh gọi tiếp theo sẽ trả về một con trỏ tới cùng một bộ đệm. Người gọi không chịu trách nhiệm giải phóng bộ đệm. Bộ đệm bị giải phóng và các con trỏ tới nó trở nên không hợp lệ khi đối tượng Unicode được thu gom rác

Mới trong phiên bản 3. 3

Đã thay đổi trong phiên bản 3. 7. Kiểu trả về hiện tại là

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
871 thay vì
*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
872.

Đã thay đổi trong phiên bản 3. 10. Chức năng này là một phần của.

const char *PyUnicode_AsUTF8[ *unicode]

As , but does not store the size.

Mới trong phiên bản 3. 3

Đã thay đổi trong phiên bản 3. 7. Kiểu trả về hiện tại là

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
871 thay vì
*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
872.

Bộ giải mã UTF-32

Đây là các API codec UTF-32

*PyUnicode_DecodeUTF32[const char *s, size, const char *errors, int *byteorder]
Return value: New reference. Part of the .

Giải mã byte kích thước từ chuỗi bộ đệm được mã hóa UTF-32 và trả về đối tượng Unicode tương ứng. lỗi [nếu không phải ____886] xác định việc xử lý lỗi. Nó mặc định là "nghiêm ngặt"

Nếu thứ tự byte không phải là ____886, bộ giải mã bắt đầu giải mã bằng cách sử dụng thứ tự byte đã cho

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian

Nếu

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
878 bằng 0 và bốn byte đầu tiên của dữ liệu đầu vào là dấu thứ tự byte [BOM], bộ giải mã sẽ chuyển sang thứ tự byte này và BOM không được sao chép vào chuỗi Unicode kết quả. Nếu
*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
878 là
*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
0 hoặc
*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
21, bất kỳ dấu thứ tự byte nào được sao chép vào đầu ra

Sau khi hoàn thành, *byteorder được đặt thành thứ tự byte hiện tại ở cuối dữ liệu đầu vào

Nếu byteorder là

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
86, codec bắt đầu ở chế độ thứ tự gốc

Trả lại

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
86 nếu codec đưa ra ngoại lệ

*PyUnicode_DecodeUTF32Stateful[const char *s, size, const char *errors, int *byteorder, *consumed]
Return value: New reference. Part of the .

Nếu tiêu thụ là

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
86, cư xử như. Nếu tiêu thụ không phải là
*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
86, sẽ không coi các chuỗi byte UTF-32 không đầy đủ ở cuối [chẳng hạn như một số byte không chia hết cho bốn] là lỗi. Các byte đó sẽ không được giải mã và số byte đã được giải mã sẽ được lưu trữ trong tiêu thụ

*PyUnicode_AsUTF32String[ *unicode]
Return value: New reference. Part of the .

Trả về chuỗi byte Python bằng mã hóa UTF-32 theo thứ tự byte gốc. Chuỗi luôn bắt đầu bằng dấu BOM. Xử lý lỗi là "nghiêm ngặt". Trả lại

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
86 nếu codec đưa ra ngoại lệ

Codec UTF-16

Đây là các API codec UTF-16

*PyUnicode_DecodeUTF16[const char *s, size, const char *errors, int *byteorder]
Return value: New reference. Part of the .

Giải mã byte kích thước từ chuỗi bộ đệm được mã hóa UTF-16 và trả về đối tượng Unicode tương ứng. lỗi [nếu không phải ____886] xác định việc xử lý lỗi. Nó mặc định là "nghiêm ngặt"

Nếu thứ tự byte không phải là ____886, bộ giải mã bắt đầu giải mã bằng cách sử dụng thứ tự byte đã cho

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian

Nếu

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
878 bằng 0 và hai byte đầu tiên của dữ liệu đầu vào là dấu thứ tự byte [BOM], bộ giải mã sẽ chuyển sang thứ tự byte này và BOM không được sao chép vào chuỗi Unicode kết quả. Nếu
*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
878 là
*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
0 hoặc
*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
21, thì bất kỳ dấu thứ tự byte nào cũng được sao chép vào đầu ra [nơi nó sẽ dẫn đến ký tự
*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
895 hoặc
*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
896]

Sau khi hoàn thành,

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
878 được đặt thành thứ tự byte hiện tại ở cuối dữ liệu đầu vào

Nếu byteorder là

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
86, codec bắt đầu ở chế độ thứ tự gốc

Trả lại

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
86 nếu codec đưa ra ngoại lệ

*PyUnicode_DecodeUTF16Stateful[const char *s, size, const char *errors, int *byteorder, *consumed]
Return value: New reference. Part of the .

Nếu tiêu thụ là

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
86, cư xử như. Nếu mức tiêu thụ không phải là
*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
86, sẽ không coi các chuỗi byte UTF-16 không đầy đủ ở cuối [chẳng hạn như số byte lẻ hoặc cặp thay thế phân tách] là lỗi. Các byte đó sẽ không được giải mã và số byte đã được giải mã sẽ được lưu trữ trong tiêu thụ

*PyUnicode_AsUTF16String[ *unicode]
Return value: New reference. Part of the .

Trả về chuỗi byte Python bằng mã hóa UTF-16 theo thứ tự byte gốc. Chuỗi luôn bắt đầu bằng dấu BOM. Xử lý lỗi là "nghiêm ngặt". Trả lại

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
86 nếu codec đưa ra ngoại lệ

Bộ giải mã UTF-7

Đây là các API codec UTF-7

*PyUnicode_DecodeUTF7[const char *s, size, const char *errors]
Return value: New reference. Part of the .

Tạo một đối tượng Unicode bằng cách giải mã byte kích thước của chuỗi được mã hóa UTF-7 s. Trả lại

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
86 nếu codec đưa ra ngoại lệ

*PyUnicode_DecodeUTF7Stateful[const char *s, size, const char *errors, *consumed]
Return value: New reference. Part of the .

Nếu tiêu thụ là

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
86, cư xử như. Nếu tiêu thụ không phải là
*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
86, các phần cơ sở UTF-7 cơ sở 64 không đầy đủ ở cuối sẽ không được coi là lỗi. Các byte đó sẽ không được giải mã và số byte đã được giải mã sẽ được lưu trữ trong tiêu thụ

Codec thoát Unicode

Đây là các API codec “Unicode Escape”

*PyUnicode_DecodeUnicodeEscape[const char *s, size, const char *errors]
Return value: New reference. Part of the .

Tạo một đối tượng Unicode bằng cách giải mã các byte kích thước của chuỗi được mã hóa Unicode-Escape s. Trả lại

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
86 nếu codec đưa ra ngoại lệ

*PyUnicode_AsUnicodeEscapeString[ *unicode]
Return value: New reference. Part of the .

Mã hóa đối tượng Unicode bằng Unicode-Escape và trả về kết quả dưới dạng đối tượng byte. Xử lý lỗi là "nghiêm ngặt". Trả lại

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
86 nếu codec đưa ra ngoại lệ

Raw-Unicode-Escape Codec

Đây là các API codec "Tẩu thoát Unicode thô"

*PyUnicode_DecodeRawUnicodeEscape[const char *s, size, const char *errors]
Return value: New reference. Part of the .

Tạo đối tượng Unicode bằng cách giải mã byte kích thước của chuỗi được mã hóa Raw-Unicode-Escape s. Trả lại

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
86 nếu codec đưa ra ngoại lệ

*PyUnicode_AsRawUnicodeEscapeString[ *unicode]
Return value: New reference. Part of the .

Mã hóa đối tượng Unicode bằng Raw-Unicode-Escape và trả về kết quả dưới dạng đối tượng byte. Xử lý lỗi là "nghiêm ngặt". Trả lại

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
86 nếu codec đưa ra ngoại lệ

Codec Latin-1

Đây là các API codec Latin-1. Latin-1 tương ứng với 256 thứ tự Unicode đầu tiên và chỉ những thứ này mới được codec chấp nhận trong quá trình mã hóa

*PyUnicode_DecodeLatin1[const char *s, size, const char *errors]
Return value: New reference. Part of the .

Tạo một đối tượng Unicode bằng cách giải mã byte kích thước của chuỗi mã hóa Latin-1 s. Trả lại

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
86 nếu codec đưa ra ngoại lệ

*PyUnicode_AsLatin1String[ *unicode]
Return value: New reference. Part of the .

Mã hóa đối tượng Unicode bằng Latin-1 và trả về kết quả dưới dạng đối tượng byte Python. Xử lý lỗi là "nghiêm ngặt". Trả lại

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
86 nếu codec đưa ra ngoại lệ

Bộ giải mã ASCII

Đây là các API codec ASCII. Chỉ chấp nhận dữ liệu ASCII 7-bit. Tất cả các mã khác tạo ra lỗi

*PyUnicode_DecodeASCII[const char *s, size, const char *errors]
Return value: New reference. Part of the .

Tạo một đối tượng Unicode bằng cách giải mã byte kích thước của chuỗi được mã hóa ASCII s. Trả lại

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
86 nếu codec đưa ra ngoại lệ

*PyUnicode_AsASCIIString[ *unicode]
Return value: New reference. Part of the .

Mã hóa đối tượng Unicode bằng ASCII và trả về kết quả dưới dạng đối tượng byte Python. Xử lý lỗi là "nghiêm ngặt". Trả lại

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
86 nếu codec đưa ra ngoại lệ

Codec bản đồ ký tự

Codec này đặc biệt ở chỗ nó có thể được sử dụng để triển khai nhiều codec khác nhau [và đây thực tế là những gì đã được thực hiện để có được hầu hết các codec tiêu chuẩn có trong gói

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
217]. Codec sử dụng ánh xạ để mã hóa và giải mã các ký tự. Các đối tượng ánh xạ được cung cấp phải hỗ trợ giao diện ánh xạ
*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
218;

Đây là các API codec ánh xạ

*PyUnicode_DecodeCharmap[const char *data, size, *mapping, const char *errors]
Return value: New reference. Part of the .

Tạo một đối tượng Unicode bằng cách giải mã các byte kích thước của chuỗi s được mã hóa bằng cách sử dụng đối tượng ánh xạ đã cho. Trả lại

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
86 nếu codec đưa ra ngoại lệ

Nếu ánh xạ là

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
86, giải mã Latin-1 sẽ được áp dụng. Ánh xạ khác phải ánh xạ thứ tự byte [số nguyên trong phạm vi từ 0 đến 255] thành chuỗi Unicode, số nguyên [sau đó được hiểu là thứ tự Unicode] hoặc
*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
221. Các byte dữ liệu chưa được ánh xạ – những byte gây ra , cũng như những byte được ánh xạ tới
*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
221,
*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
224 hoặc
*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
225, được coi là ánh xạ không xác định và gây ra lỗi

*PyUnicode_AsCharmapString[ *unicode, *mapping]
Return value: New reference. Part of the .

Mã hóa đối tượng Unicode bằng cách sử dụng đối tượng ánh xạ đã cho và trả về kết quả dưới dạng đối tượng byte. Xử lý lỗi là "nghiêm ngặt". Trả lại

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
86 nếu codec đưa ra ngoại lệ

Đối tượng ánh xạ phải ánh xạ số nguyên thứ tự Unicode thành đối tượng byte, số nguyên trong phạm vi từ 0 đến 255 hoặc

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
221. Thứ tự ký tự chưa được ánh xạ [thứ gây ra a ] cũng như được ánh xạ tới
*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
221 được coi là "ánh xạ không xác định" và gây ra lỗi

API codec sau đây đặc biệt ở chỗ ánh xạ Unicode sang Unicode

*PyUnicode_Translate[ *str, *table, const char *errors]
Return value: New reference. Part of the .

Dịch một chuỗi bằng cách áp dụng bảng ánh xạ ký tự cho chuỗi đó và trả về đối tượng Unicode kết quả. Trả lại

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
86 nếu codec đưa ra ngoại lệ

Bảng ánh xạ phải ánh xạ số nguyên thứ tự Unicode thành số nguyên thứ tự Unicode hoặc

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
221 [gây ra việc xóa ký tự]

Các bảng ánh xạ chỉ cần cung cấp giao diện

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
218; . Các thứ tự ký tự chưa được ánh xạ [những thứ gây ra a ] không bị ảnh hưởng và được sao chép nguyên trạng

lỗi có ý nghĩa thông thường đối với codec. Nó có thể là

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
86 cho biết sử dụng xử lý lỗi mặc định

Bộ giải mã MBCS cho Windows

Đây là các API mã hóa MBCS. Chúng hiện chỉ khả dụng trên Windows và sử dụng bộ chuyển đổi Win32 MBCS để thực hiện chuyển đổi. Lưu ý rằng MBCS [hoặc DBCS] là một lớp mã hóa, không chỉ là một. Mã hóa đích được xác định bởi cài đặt người dùng trên máy chạy codec

*PyUnicode_DecodeMBCS[const char *s, size, const char *errors]
Return value: New reference. Part of the on Windows since version 3.7.

Tạo một đối tượng Unicode bằng cách giải mã byte kích thước của chuỗi mã hóa MBCS s. Trả lại

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
86 nếu codec đưa ra ngoại lệ

*PyUnicode_DecodeMBCSStateful[const char *s, size, const char *errors, *consumed]
Return value: New reference. Part of the on Windows since version 3.7.

Nếu tiêu thụ là

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
86, cư xử như. Nếu tiêu thụ không phải là
*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
86, sẽ không giải mã byte dẫn đầu theo sau và số byte đã được giải mã sẽ được lưu trữ trong tiêu thụ

*PyUnicode_AsMBCSString[ *unicode]
Return value: New reference. Part of the on Windows since version 3.7.

Mã hóa một đối tượng Unicode bằng MBCS và trả về kết quả dưới dạng đối tượng byte Python. Xử lý lỗi là "nghiêm ngặt". Trả lại

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
86 nếu codec đưa ra ngoại lệ

*PyUnicode_EncodeCodePage[int code_page, *unicode, const char *errors]
Return value: New reference. Part of the on Windows since version 3.7.

Mã hóa đối tượng Unicode bằng trang mã được chỉ định và trả về đối tượng byte Python. Trả lại

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
86 nếu codec đưa ra ngoại lệ. Sử dụng trang mã
*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
242 để lấy bộ mã hóa MBCS

Mới trong phiên bản 3. 3

Phương pháp & Slots

Phương thức và chức năng khe cắm

Các API sau đây có khả năng xử lý các đối tượng và chuỗi Unicode trên đầu vào [chúng tôi gọi chúng là các chuỗi trong phần mô tả] và trả về các đối tượng hoặc số nguyên Unicode khi thích hợp

Tất cả đều trả về

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
86 hoặc
*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
0 nếu xảy ra ngoại lệ

*PyUnicode_Concat[ *trái, *right]
Return value: New reference. Part of the .

Kết hợp hai chuỗi tạo ra một chuỗi Unicode mới

*PyUnicode_Split[ *s, *sep, maxsplit]
Return value: New reference. Part of the .

Tách một chuỗi đưa ra danh sách các chuỗi Unicode. Nếu sep là

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
86, việc tách sẽ được thực hiện ở tất cả các chuỗi con khoảng trắng. Mặt khác, sự phân chia xảy ra tại dấu phân cách đã cho. Tối đa việc chia tách maxsplit sẽ được thực hiện. Nếu âm, không có giới hạn nào được đặt. Dấu phân cách không được bao gồm trong danh sách kết quả

*PyUnicode_Splitlines[ *s, int keepend]
Return value: New reference. Part of the .

Tách một chuỗi Unicode khi ngắt dòng, trả về một danh sách các chuỗi Unicode. CRLF được coi là ngắt một dòng. Nếu keepend là

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
7, các ký tự ngắt dòng không được bao gồm trong chuỗi kết quả

*PyUnicode_Join[ *dấu phân cách, *seq]
Return value: New reference. Part of the .

Tham gia một chuỗi các chuỗi bằng cách sử dụng dấu tách đã cho và trả về chuỗi Unicode kết quả

PyUnicode_Tailmatch[ *str , *substr, start, end, int direction]
Part of the .

Trả về ________ 921 nếu chuỗi con khớp với ________ 9248 ở đầu đuôi đã cho [hướng ==

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
0 có nghĩa là thực hiện khớp tiền tố, hướng ==
*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
21 khớp hậu tố], ngược lại là
*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
7. Trả lại
*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
0 nếu xảy ra lỗi

PyUnicode_Find[ *str , *substr, start, end, int direction]
Part of the .

Trả về vị trí đầu tiên của chất nền trong

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
248 bằng cách sử dụng hướng đã cho [hướng ==
*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
21 có nghĩa là thực hiện tìm kiếm xuôi, hướng ==
*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
0 tìm kiếm ngược]. Giá trị trả về là chỉ số của trận đấu đầu tiên;

PyUnicode_FindChar[ *str , ch, start, end, int direction]
Part of the since version 3.7.

Trả về vị trí đầu tiên của ký tự ch trong

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
248 bằng cách sử dụng hướng đã cho [hướng ==
*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
21 có nghĩa là thực hiện tìm kiếm xuôi, hướng ==
*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
0 tìm kiếm ngược]. Giá trị trả về là chỉ số của trận đấu đầu tiên;

Mới trong phiên bản 3. 3

Đã thay đổi trong phiên bản 3. 7. bắt đầu và kết thúc hiện được điều chỉnh để hoạt động giống như

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
248.

PyUnicode_Count[ *str , *substr, start, end]
Part of the .

Trả về số lần xuất hiện không trùng lặp của chất nền trong

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
248. Trả lại
*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
0 nếu xảy ra lỗi

*PyUnicode_Replace[ *str, *substr, *replstr, maxcount]
Return value: New reference. Part of the .

Thay thế tối đa số lần xuất hiện tối đa của chuỗi con trong chuỗi bằng thay thế và trả về đối tượng Unicode kết quả. maxcount ==

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
0 có nghĩa là thay thế tất cả các lần xuất hiện

int PyUnicode_Compare[ *left, *right]
Part of the .

So sánh hai chuỗi và trả về ________ 10, ________ 87, _______ 921 lần lượt nhỏ hơn, bằng và lớn hơn

Hàm này trả về

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
0 khi bị lỗi, vì vậy người ta nên gọi để kiểm tra lỗi

int PyUnicode_CompareWithASCIIString[ *uni, const char *string]
Part of the .

So sánh một đối tượng Unicode, uni, với chuỗi và trả về ________ 10, ________ 87, _______ 921 lần lượt là nhỏ hơn, bằng và lớn hơn. Tốt nhất là chỉ chuyển các chuỗi được mã hóa ASCII, nhưng hàm diễn giải chuỗi đầu vào là ISO-8859-1 nếu nó chứa các ký tự không phải ASCII

Chức năng này không đưa ra ngoại lệ

*PyUnicode_RichCompare[ *left, *right, int op]
Return value: New reference. Part of the .

Rich so sánh hai chuỗi Unicode và trả về một trong các chuỗi sau

  • *byteorder == -1: little endian
    *byteorder == 0:  native order
    *byteorder == 1:  big endian
    
    86 trong trường hợp một ngoại lệ đã được đưa ra

  • *byteorder == -1: little endian
    *byteorder == 0:  native order
    *byteorder == 1:  big endian
    
    276 hoặc
    *byteorder == -1: little endian
    *byteorder == 0:  native order
    *byteorder == 1:  big endian
    
    277 để so sánh thành công

  • *byteorder == -1: little endian
    *byteorder == 0:  native order
    *byteorder == 1:  big endian
    
    278 trong trường hợp kiểu kết hợp không xác định

Các giá trị có thể có của op là ________ 9279, ________ 9280, ________ 9281, ________ 9282,

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
283 và
*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
284

*PyUnicode_Format[ *định dạng, *args]
Return value: New reference. Part of the .

Trả về một đối tượng chuỗi mới từ định dạng và args;

int PyUnicode_Contains[ *vùng chứa, *element]
Part of the .

Kiểm tra xem phần tử có được chứa trong vùng chứa hay không và trả về true hoặc false tương ứng

phần tử phải ép buộc một chuỗi Unicode một phần tử.

*byteorder == -1: little endian
*byteorder == 0:  native order
*byteorder == 1:  big endian
0 được trả lại nếu có lỗi

void PyUnicode_InternInPlace[ **string]
Part of the .

Thực tập đối số * chuỗi tại chỗ. Đối số phải là địa chỉ của biến con trỏ trỏ đến đối tượng chuỗi Python Unicode. Nếu có một chuỗi nội bộ hiện có giống với *string, thì nó đặt *string cho nó [giảm số tham chiếu của đối tượng chuỗi cũ và tăng số tham chiếu của đối tượng chuỗi nội], nếu không thì nó để nguyên *string và . [Làm rõ. mặc dù có rất nhiều cuộc thảo luận về số lượng tham chiếu, hãy coi chức năng này là trung lập về số lượng tham chiếu; . ]

*PyUnicode_InternFromString[const char *v]
Return value: New reference. Part of the .

Một sự kết hợp của và , trả về một đối tượng chuỗi Unicode mới đã được thực hiện hoặc một tham chiếu mới ["sở hữu"] cho một đối tượng chuỗi đã được thực hiện trước đó có cùng giá trị

Làm cách nào để chuyển đổi Unicode thành dict trong Python?

Làm cách nào để chuyển đổi chuỗi Unicode thành từ điển trong Python? .
s = u"{'a'. 1, 'b'. 2, 'c'. 3}" d = eval[s] print[d] print[type[d]].
nhập khẩu ast. s = u"{'a'. 1, 'b'. 2, 'c'. 3}" d = ast. .
nhập json. s = u"{'a'. 1, 'b'. 2, 'c'. 3}" d = json. .
s = u"{'a'. 1, 'b'. 2, 'c'. 'xin chào' }" def string_to_dict[s]. new_dict = {}

Làm cách nào để xóa Unicode khỏi từ điển trong Python?

5 cách hiệu quả để xóa ký tự Unicode trong Python .
Sử dụng phương thức mã hóa [] và giải mã []
Sử dụng phương thức thay thế [] để xóa các ký tự Unicode
Sử dụng ký tự. phương thức isalnum[] để xóa các ký tự đặc biệt trong Python
Sử dụng biểu thức chính quy để xóa các ký tự Unicode cụ thể trong Python

dict ={} trong Python là gì?

Từ điển trong Python . Mỗi cặp khóa-giá trị ánh xạ khóa với giá trị được liên kết của nó. Bạn có thể định nghĩa một từ điển bằng cách đặt một danh sách các cặp khóa-giá trị được phân tách bằng dấu phẩy trong dấu ngoặc nhọn [ {} ]

Làm cách nào để chuyển đổi Unicode thành chuỗi trong Python?

Trong bài viết Chuỗi Python này, chúng ta đã thấy cách chuyển đổi chuỗi Unicode thành chuỗi bằng hàm str[]. Ngoài ra, chúng ta đã thấy cách mã hóa chuỗi thành UTF-8, UTF-16 và UTF-32 bằng encode[] và giải mã chuỗi thành chuỗi Unicode bằng phương thức decode[]

Chủ Đề