La función str.encode
toma un argumento opcional que define la gestión de errores:
str.encode([encoding[, errors]])
A partir de los documentos:
Volver una versión codificada de la cadena. La codificación predeterminada es la codificación de cadena predeterminada actual. se pueden dar errores para establecer un esquema de manejo de errores diferente. El valor predeterminado para los errores es 'estricto', lo que significa que los errores de codificación generan un error UnicodeError. Otros valores posibles son 'ignorar', 'reemplazar', 'xmlcharrefreplace', 'backslashreplace' y cualquier otro nombre registrado mediante codecs.register_error(), ver la sección Clases Base de Codec. Para obtener una lista de posibles codificaciones, consulte la sección Codificaciones estándar.
En su caso, la función codecs.register_error
puede ser de su interés.
[nota sobre caracteres malos]
Por cierto, tenga en cuenta cuando se utiliza register_error
que es probable que se encuentra la sustitución de su mala disposición no sólo individuales sino grupos de personajes malos consecutivos con su cadena, a menos que pague atención. Se obtiene una llamada al controlador de errores por ejecución de caracteres incorrectos, no por carácter.
Si la codificación predeterminada es ascii, ¿qué codificación es esa cadena ''ébác''? –
@ Peter Hansen - tienes razón :) fue solo para explicar lo que quiero ... mal ejemplo. – olamundo