4.9.1.1 Oggetti Codec

La classe Codec definisce questi metodi, che a loro volta definiscono le interfacce di funzione negli encoder/decoder stateless:

encode( input[, errors])
Codifica l'oggetto input e restituisce una tupla (oggetto output, lunghezza consumata). Poichè i codec non vengono limitati ad essere usati con Unicode, la codifica converte un oggetto Unicode in una stringa semplice, usando un particolare insieme di caratteri di codifica (per esempio: cp1252 o iso-8859-1).

errors definisce il metodo di gestione degli errori da utilizzare. Predefinita è una gestione 'strict'.

Il metodo può non memorizzare lo stato nell'istanza Codec. Usate StreamCodec per i codec che devono mantenere lo stato per eseguire una codifica/decodifica efficiente.

Il codificatore deve essere in grado di gestire un input di lunghezza zero, e restituire in questa situazione, un oggetto vuoto come oggetto di uscita.

decode( input[, errors])
Decodifica l'oggetto input e restituisce una tupla (oggetto output, lunghezza consumata). In un contesto Unicode, la decodifica converte una stringa semplice, codificata con un particolare insieme di caratteri, codificandola in un oggetto Unicode.

input deve essere un oggetto che fornisca il segmento buffer bf_getreadbuf. Le stringhe Python, gli oggetti buffer ed i file mappati in memoria sono esempi di oggetti che forniscono questo segmento.

errors definisce il metodo di gestione degli errori da utilizzare. Predefinita è una gestione 'strict'.

Il metodo può non memorizzare lo stato nell'istanza Codec. Utilizzate StreamCodec per le codifiche che debbano mantenere lo stato per poter ottenere una codifica/decodifica efficiente.

Il decodificatore deve essere in grado di gestire input di lunghezza zero, e restituire in questa situazione, un oggetto vuoto come tipo di oggetto risultante.

Le classi StreamWriter e StreamReader forniscono un'interfaccia generica di lavoro che può venire utilizzata per implementare, molto facilmente, dei nuovi moduli derivati di codifica. Vedete encodings.utf_8 per un esempio.

Vedete Circa questo documento... per informazioni su modifiche e suggerimenti.