Problema con los encodings al generar xml usando lxml
Mikel Larreategi
mlarreategi en codesyntax.com
Jue Ago 28 08:17:55 CEST 2008
2008/8/27 Cesar Ortiz <cesar en ortiz.name>:
> Hola listeros,
>
> A ver si alguno se ha enfrentado a esto antes con lxml... Que me estoy
> quedando mico.
> Quiero generar un xml, con lxml, creando la información a pelo. Ahí va el
> codigo:
Nuestros eternos problemas con iso, utf y unicod... que no acabarán
nunca hasta que todos los americanos del norte empiecen a dominar el
español... ;)
>
> #!/usr/bin/python
> # -*- coding: iso-8859-1 -*-
Con esto "sólo" dices que todos los caracteres especiales que están en
este archivo están en codificación iso-8859-1.
> import sys
> from lxml import etree
>
>
> root = etree.Element('root')
> tree = etree.ElementTree(root) # wrapper
> dato = etree.SubElement(root,'dato')
> dato.text = unicode('Camión','iso-8859-1')
O sea, que siguiendo lo que has escrito arriba, el caracter ó que hay
aquí estará en iso-8859-1
>
> print tree.docinfo.encoding
>
> #--- Imprimimos
> print etree.tostring(root,encoding="utf-8",xml_declaration=True)
> print etree.tostring(root,encoding="latin1",xml_declaration=True)
>
> Y esta es la salida:
>
> UTF-8
> <?xml version='1.0' encoding='utf-8'?>
> <root><dato>Camión</dato></root>
> <?xml version='1.0' encoding='latin1'?>
> <root><dato>Camión</dato></root>
>
Esta salida, la da tu consola? En qué codificación está tu consola?
Mikel
--
Mikel Larreategi
mlarreategi en codesyntax.com
CodeSyntax
Azitaingo Industrialdea 3 K
E-20600 Eibar
Tel: (+34) 943 82 17 80
------------ próxima parte ------------
_______________________________________________
Lista de correo Python-es
http://listas.aditel.org/listinfo/python-es
FAQ: http://listas.aditel.org/faqpyes
Más información sobre la lista de distribución Python-es