[pyar] Problema con encoding
Andrés Gattinoni
andresgattinoni en gmail.com
Lun Jul 25 15:36:29 ART 2011
Hola listeros!
Me pueden ayudar a corregir este problemita de encoding?
Tengo un script en python que usa Templite para generar unos archivos
HTML a partir de un template.
Todo lo tengo en UTF-8, el template, mi script en python, etc.
Este es el código que genera el archivo HTML:
import codecs
from templite import Templite
def render (filename, template, data):
tplfile = codecs.open(template, 'r', 'utf-8')
temp = Templite(tplfile.read())
tplfile.close()
f = codecs.open(filename, 'w', 'utf-8')
f.write(temp.render(data))
f.close()
El tema es que por más que el archivo del template está en utf-8 y yo
leo indicándole que lo lea en utf-8, si escribo un acento en el
template falla así:
Traceback (most recent call last):
File "process.py", line 63, in <module>
sys.exit(main(sys.argv))
File "process.py", line 60, in main
render('./index.html', 'templates/index.tpl', data)
File "process.py", line 12, in render
f.write(temp.render(data))
File "/home/elbarto/trabajo/clai/cd/templite.py", line 81, in render
eval(self.__code, namespace)
File "<templite u'<!DOCTYPE html PUBLI'>", line 55, in <module>
File "/home/elbarto/trabajo/clai/cd/templite.py", line 87, in write
self.__output.append(unicode(a))
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position
40: ordinal not in range(128)
$ file -i templates/index.tpl
templates/index.tpl: text/html; charset=utf-8
En cambio, si borro el acento, funciona todo perfecto.
Cómo puedo corregir el error?
Gracias.
Saludos,
A
More information about the pyar
mailing list