Hướng dẫn how do you encode bytes in python? - làm thế nào để bạn mã hóa byte trong python?

Tôi chưa quen với Python3, đến từ Python2, và tôi hơi bối rối với các nguyên tắc cơ bản của Unicode. Tôi đã đọc một số bài viết tốt, điều đó làm cho tất cả rõ ràng hơn nhiều, tuy nhiên tôi thấy có 2 phương pháp trên Python 3, có xử lý mã hóa và giải mã và tôi không chắc chắn nên sử dụng phương pháp nào.

Vì vậy, ý tưởng trong Python 3 là, mỗi chuỗi là Unicode và có thể được mã hóa và lưu trữ trong byte, hoặc được giải mã trở lại thành chuỗi Unicode một lần nữa.

Nhưng có 2 cách để làm điều đó: u'something'.encode('utf-8') sẽ tạo ra ____10, nhưng

message = 'Python is fun'

# convert string to bytes byte_message = bytes(message, 'utf-8')

print(byte_message) # Output: b'Python is fun'
1 cũng vậy. Và
message = 'Python is fun'

# convert string to bytes byte_message = bytes(message, 'utf-8')

print(byte_message) # Output: b'Python is fun'
2 dường như làm điều tương tự như
message = 'Python is fun'

# convert string to bytes byte_message = bytes(message, 'utf-8')

print(byte_message) # Output: b'Python is fun'
3.
u'something'.encode('utf-8') will generate
message = 'Python is fun'

# convert string to bytes byte_message = bytes(message, 'utf-8')

print(byte_message) # Output: b'Python is fun'
0, but so does
message = 'Python is fun'

# convert string to bytes byte_message = bytes(message, 'utf-8')

print(byte_message) # Output: b'Python is fun'
1.
And
message = 'Python is fun'

# convert string to bytes byte_message = bytes(message, 'utf-8')

print(byte_message) # Output: b'Python is fun'
2 seems to do the same thing as
message = 'Python is fun'

# convert string to bytes byte_message = bytes(message, 'utf-8')

print(byte_message) # Output: b'Python is fun'
3.

Bây giờ câu hỏi của tôi là, tại sao có 2 phương pháp dường như làm điều tương tự, và tốt hơn các phương pháp khác (và tại sao?) Tôi đã cố gắng tìm câu trả lời cho điều này trên Google, nhưng không có may mắn.

>>> original = '27岁少妇生孩子后变老'
>>> type(original)

>>> encoded = original.encode('utf-8')
>>> print(encoded)
b'27\xe5\xb2\x81\xe5\xb0\x91\xe5\xa6\x87\xe7\x94\x9f\xe5\xad\xa9\xe5\xad\x90\xe5\x90\x8e\xe5\x8f\x98\xe8\x80\x81'
>>> type(encoded)

>>> encoded2 = bytes(original, 'utf-8')
>>> print(encoded2)
b'27\xe5\xb2\x81\xe5\xb0\x91\xe5\xa6\x87\xe7\x94\x9f\xe5\xad\xa9\xe5\xad\x90\xe5\x90\x8e\xe5\x8f\x98\xe8\x80\x81'
>>> type(encoded2)

>>> print(encoded+encoded2)
b'27\xe5\xb2\x81\xe5\xb0\x91\xe5\xa6\x87\xe7\x94\x9f\xe5\xad\xa9\xe5\xad\x90\xe5\x90\x8e\xe5\x8f\x98\xe8\x80\x8127\xe5\xb2\x81\xe5\xb0\x91\xe5\xa6\x87\xe7\x94\x9f\xe5\xad\xa9\xe5\xad\x90\xe5\x90\x8e\xe5\x8f\x98\xe8\x80\x81'
>>> decoded = encoded.decode('utf-8')
>>> print(decoded)
27岁少妇生孩子后变老
>>> decoded2 = str(encoded2, 'utf-8')
>>> print(decoded2)
27岁少妇生孩子后变老
>>> type(decoded)

>>> type(decoded2)

>>> print(str(b'27\xe5\xb2\x81\xe5\xb0\x91\xe5\xa6\x87\xe7\x94\x9f\xe5\xad\xa9\xe5\xad\x90\xe5\x90\x8e\xe5\x8f\x98\xe8\x80\x81', 'utf-8'))
27岁少妇生孩子后变老
>>> print(b'27\xe5\xb2\x81\xe5\xb0\x91\xe5\xa6\x87\xe7\x94\x9f\xe5\xad\xa9\xe5\xad\x90\xe5\x90\x8e\xe5\x8f\x98\xe8\x80\x81'.decode('utf-8'))
27岁少妇生孩子后变老

Trong hướng dẫn này, chúng tôi sẽ tìm hiểu về phương thức python byte () với sự trợ giúp của các ví dụ.

Phương thức

message = 'Python is fun'

# convert string to bytes byte_message = bytes(message, 'utf-8')

print(byte_message) # Output: b'Python is fun'
4 trả về một đối tượng byte bất biến được khởi tạo với kích thước và dữ liệu đã cho.

Thí dụ

message = 'Python is fun'

# convert string to bytes byte_message = bytes(message, 'utf-8')

print(byte_message) # Output: b'Python is fun'


Byte () cú pháp

Cú pháp của phương pháp

message = 'Python is fun'

# convert string to bytes byte_message = bytes(message, 'utf-8')

print(byte_message) # Output: b'Python is fun'
4 là:

bytes([source[, encoding[, errors]]])

Phương thức

message = 'Python is fun'

# convert string to bytes byte_message = bytes(message, 'utf-8')

print(byte_message) # Output: b'Python is fun'
4 Trả về một đối tượng byte là chuỗi số nguyên bất biến (không thể sửa đổi) trong phạm vi
message = 'Python is fun'

# convert string to bytes byte_message = bytes(message, 'utf-8')

print(byte_message) # Output: b'Python is fun'
7.

Nếu bạn muốn sử dụng phiên bản có thể thay đổi, hãy sử dụng phương thức bytearray ().


tham số byte ()

message = 'Python is fun'

# convert string to bytes byte_message = bytes(message, 'utf-8')

print(byte_message) # Output: b'Python is fun'
4 lấy ba tham số tùy chọn:

  • Nguồn (Tùy chọn) - Nguồn để khởi tạo mảng byte. - source to initialize the array of bytes.
  • Mã hóa (tùy chọn) - Nếu nguồn là một chuỗi, mã hóa chuỗi. - if the source is a string, the encoding of the string.
  • Lỗi (tùy chọn) - Nếu nguồn là một chuỗi, hành động cần thực hiện khi chuyển đổi mã hóa không thành công (đọc thêm: mã hóa chuỗi) - if the source is a string, the action to take when the encoding conversion fails (Read more: String encoding)

Tham số nguồn có thể được sử dụng để khởi tạo mảng byte theo các cách sau:source parameter can be used to initialize the byte array in the following ways:

Loại hìnhSự mô tả
Sợi dâyChuyển đổi chuỗi thành byte bằng str.encode () cũng phải cung cấp mã hóa và lỗi tùy chọnencoding and optionally errors
Số nguyênTạo một mảng có kích thước được cung cấp, tất cả được khởi tạo thành null
Sự vậtBộ đệm chỉ đọc của đối tượng sẽ được sử dụng để khởi tạo mảng byte
Có thể lặp lạiTạo một mảng có kích thước bằng với số lượng ITBER và được khởi tạo thành các phần tử có thể lặp lại phải có thể lặp lại của các số nguyên giữa
message = 'Python is fun'

# convert string to bytes byte_message = bytes(message, 'utf-8')

print(byte_message) # Output: b'Python is fun'
9
Không có nguồn (đối số)Tạo một mảng có kích thước 0


byte () giá trị trả về

Phương thức

message = 'Python is fun'

# convert string to bytes byte_message = bytes(message, 'utf-8')

print(byte_message) # Output: b'Python is fun'
4 trả về đối tượng byte của kích thước và giá trị khởi tạo đã cho.


Ví dụ 1: Chuyển đổi chuỗi thành byte

string = "Python is interesting."

# string with encoding 'utf-8'

arr = bytes(string, 'utf-8')

print(arr)

Đầu ra

b'Python is interesting.'

Ví dụ 2: Tạo một byte có kích thước số nguyên đã cho

size = 5

arr = bytes(size)

print(arr)

Đầu ra

b'\x00\x00\x00\x00\x00'

Ví dụ 3: Chuyển đổi danh sách có thể lặp lại thành byte

rList = [1, 2, 3, 4, 5]

arr = bytes(rList)

print(arr)

Đầu ra

b'\x01\x02\x03\x04\x05'

Định dạng byte trong Python là gì?

Hàm python byte () Nó có thể chuyển đổi các đối tượng thành các đối tượng byte hoặc tạo đối tượng byte trống của kích thước được chỉ định.Sự khác biệt giữa byte () và bytearray () là byte () trả về một đối tượng không thể sửa đổi và bytearray () trả về một đối tượng có thể được sửa đổi.It can convert objects into bytes objects, or create empty bytes object of the specified size. The difference between bytes() and bytearray() is that bytes() returns an object that cannot be modified, and bytearray() returns an object that can be modified.

Loại mã hóa trong Python là gì?

UTF-8 là một trong những mã hóa được sử dụng phổ biến nhất và Python thường mặc định sử dụng nó.UTF là viết tắt của định dạng chuyển đổi Unicode, và '8' có nghĩa là các giá trị 8 bit được sử dụng trong mã hóa.(Ngoài ra còn có mã hóa UTF-16 và UTF-32, nhưng chúng ít được sử dụng hơn UTF-8.) is one of the most commonly used encodings, and Python often defaults to using it. UTF stands for “Unicode Transformation Format”, and the '8' means that 8-bit values are used in the encoding. (There are also UTF-16 and UTF-32 encodings, but they are less frequently used than UTF-8.)