La funzione str.encode
prende un argomento facoltativo definisce la gestione degli errori:
str.encode([encoding[, errors]])
Dalla documentazione:
ritorno una versione codificata della stringa. La codifica predefinita è la codifica della stringa predefinita corrente. errori possono essere dati per impostare un diverso schema di gestione degli errori. L'impostazione predefinita per gli errori è "strict", ovvero gli errori di codifica generano un errore Unicode. Altri valori possibili sono "ignore", "replace", "xmlcharrefreplace", "backslashreplace" e qualsiasi altro nome registrato tramite codecs.register_error(), vedere la sezione Codec Base Classes. Per un elenco di possibili codifiche, vedere la sezione Codifiche standard.
Nel tuo caso, la funzione codecs.register_error
potrebbe essere di interesse.
[nota su caratteri cattivi]
A proposito, si noti quando si utilizza register_error
che è probabile che ritrovi la sostituzione non solo i singoli caratteri male, ma gruppi di personaggi cattivi consecutivi con la stringa, a meno che non si paga Attenzione. Ottieni una chiamata al gestore degli errori per l'esecuzione di caratteri non validi, non per carattere.
Se la codifica predefinita è ascii, quale codifica è quella stringa '' ébác''? –
@Peter Hansen - hai ragione :) era solo per spiegare quello che voglio ... cattivo esempio. – olamundo