ciąg jest już „dekodowane”, co STR klasa ma „dekodowania” function.Thus:
AttributeError: type object 'str' has no attribute 'decode'
Jeśli chcesz dekodować tablicy bajtów i przekształcić go w ciąg połączenia:
the_thing.decode(encoding)
Jeśli chcesz zakodować ciąg (przekształcić go w tablicy bajtów) zadzwonić:
the_string.encode(encoding)
pod względem podstawy 64 rzeczy: Korzystanie „base64” jako wartość kodowania powyżej rentowności błąd:
LookupError: unknown encoding: base64
Otwórz konsolę i wpisz następujące:
import base64
help(base64)
Zobaczysz, że base64 ma dwie bardzo przydatne funkcje, mianowicie kod b64 i kod b64. dekodowanie b64 zwraca tablicę bajtów, a b64encode wymaga tablicy bajtów.
Aby przekonwertować ciąg na jego reprezentację base64, należy najpierw przekonwertować go na bajty. Podoba mi się utf-8, ale używam tego kodowania, którego potrzebujesz ...
import base64
def stringToBase64(s):
return base64.b64encode(s.encode('utf-8'))
def base64ToString(b):
return base64.b64decode(b).decode('utf-8')
Ponieważ Python-3 ma ciąg znaków Unicode, typ danych bajtów został wprowadzony. Konwertuj ciąg znaków na bajtrayray, np. używając 'b = bytes (mystring, 'utf-8')', a następnie używając 'b' do kodowania:' EncodedString = base64.b64encode (b) ', który zwróci bytearray –