
Il metodo decode() di Python
Il metodo decode() è utilizzato per convertire una sequenza di caratteri binari in una stringa di caratteri comprensibile.
stringa.decode(encoding, errore)
Il metodo si applica agli oggetti binari di tipo byte e ha due parametri.
- Il parametro "encoding" specifica il tipo di codifica da usare per decodificare la sequenza di byte
- Il parametro "errors" specifica il comportamento del metodo in caso di errori di decodifica.
Il metodo restituisce una stringa nella codifica che hai indicato nel primo parametro (encoding).
Cosa sono i dati binari? I dati binari sono un insieme di numeri che vengono utilizzati dal computer per rappresentare informazioni. A differenza dei numeri decimali, i numeri binari utilizzano solo due cifre, 0 e 1.
Ti faccio un esempio pratico.
Definisci un dato binario nella variabile "data".
>>> data = b"Hello world"
Decodifica la stringa con il metodo decode() indicando la codifica UTF-8 come encoding
>>> data.decode('utf-8')
Il metodo decode() con l'argomento 'utf-8', decodifica la stringa in una forma leggibile.
Il risultato è la stringa "Hello world" nella codifica UTF-8.
Hello world
Nota. Il metodo decode() è in grado di convertire qualsiasi stringa binaria in una stringa di caratteri. E' particolarmente utile quando lavori con stringhe di caratteri che utilizzano diverse codifiche. In questo caso, però, devi fare attenzione alla gestione degli errori di codifica.
Ti faccio un altro esempio.
Digita questo comando.
>>> data.decode(encoding="UTF-8", errors="strict")
In questo caso stai convertendo le informazioni contenute nell'oggetto data in una stringa in formato UTF-8.
Nel parametro "errors" puoi specificare come gestire gli eventuali errori di decodifica.
- Il valore "ignore" indica al metodo di ignorare i caratteri non decodificabili.
- Il valore "replace" indica al metodo di sostituirli con un carattere di sostituzione.
- Il valore "strict" genera un'eccezione di tipo UnicodeDecodeError se ci sono byte non validi nella sequenza di input. E' il parametro predefinito di default.
In questo caso il risultato finale è sempre lo stesso
Hello world
La gestione degli eventuali errori di decodifica è molto importante quando decodifichi una stringa da un formato a un altro.