Problemas de decodificación unicode con Reportlab y Python

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.

Deje un comentario


NOTA - Puede usar estosHTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>