Một chuỗi đã được 'giải mã', do đó str lớp không có 'giải mã' function.Thus:
AttributeError: type object 'str' has no attribute 'decode'
Nếu bạn muốn giải mã một mảng byte và biến nó thành một cuộc gọi chuỗi:
the_thing.decode(encoding)
Nếu bạn muốn mã hóa một chuỗi (biến nó thành một mảng byte) gọi:
the_string.encode(encoding)
Xét về mặt cơ sở 64 thứ: Sử dụng 'base64' làm giá trị cho mã hóa trên lãi suất lỗi:
LookupError: unknown encoding: base64
mở một giao diện điều khiển và gõ như sau:
import base64
help(base64)
Bạn sẽ thấy rằng base64 có hai hàm rất tiện dụng, cụ thể là b64decode và b64encode. giải mã b64 trả về mảng byte và b64encode yêu cầu mảng byte.
Để chuyển đổi chuỗi thành đại diện base64, trước tiên bạn cần phải chuyển đổi chuỗi thành byte. Tôi thích utf-8 nhưng sử dụng bất kỳ mã hóa nào bạn cần ...
import base64
def stringToBase64(s):
return base64.b64encode(s.encode('utf-8'))
def base64ToString(b):
return base64.b64decode(b).decode('utf-8')
Vì python-3 có chuỗi unicode, kiểu dữ liệu byte được giới thiệu. Bạn phải chuyển đổi chuỗi của mình thành mã vạch, ví dụ: bằng cách sử dụng 'b = bytes (mystring, 'utf-8')', và sau đó sử dụng 'b' cho mã hóa:' EncodedString = base64.b64encode (b) ', sẽ trả về một dấu thăng –