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:
Sợi dây | Chuyể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ên | Tạ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ật | Bộ đệ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ại | Tạ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 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'