Por ejemplo tenemos una base de datos con caracteres especiales (sería lo normal – Acentos y demas -), y al tratar de generar un documento PDF con Reportlab, este nos genera errores del tipo de decodificación utf-8 o unicode. (ojo que solo se presento el problema al ejecutar la aplicación en windows).
Entonces lo que podemos hacer en estos casos es transformar el string y eliminar los caracteres especiales, aqui esta el codigo:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from unicodedata import normalize
def normalizar_string(unicode_string):
return normalize('NFKD',unicode_string).encode('ASCII', 'ignore').lower()
unic='holí' #Ejemplo de string normal.
string=unicode(unic, 'utf-8') #Transformacion a unicode.
print normalizar_string(string) #llamamos la funcion e imprimimos.
Comentarios