[pyar] Codificación de archivos...
Mauricio Baeza
mauricio en correolibre.net
Sab Jul 9 20:47:43 ART 2011
El sáb, 09-07-2011 a las 18:33 -0500, Mauricio Baeza escribió:
> Hola a todos...
>
> Tengo el siguiente problema.
>
> Tengo cientos de archivos XML (son facturas electrónicas). Están
> generados en UTF-8, se puede comprobar en el Gedit con el cursor en la
> pestaña que muestra correctamente Unicode(UTF-8). Estos cientos de
> archivos se validan en una página del SAT (el ente encargado de
> recaudar impuestos en mi país México), ahora. Desde hace unos días,
> todos estos archivos que ya habían sido validados, los marca erróneos
> por que dice no están codificados en UTF-8. Para asegurarme de que
> fueran en UTF-8, use el siguiente sencillo script de Python:
>
> # python
> path='original.xml'
> path2='original_ok.xml'
>
> f= open(path, 'rb')
> content= f.read()
> f.close()
> f= open(path2, 'wb')
> f.write(content.encode('utf-8'))
> f.close()
>
> El archivo queda exactamente igual, pero exactamente igual los marca
> no valido el SAT. La siguiente prueba fue, abrir una maquina virtual
> con Win XP, abrir el archivo en el Bloc de Notas, guardar como y
> seleccionar UTF-8, con este sencillo cambio, de nuevo estos XML son
> validos, tengo dos preguntas:
>
> ¿Alguien sabe o como se puede averiguar como es que "realmente" lo
> guardar el Bloc de Notas?
> ¿Como puedo hacer esto en Python en lo que nos peleamos con el SAT?
>
> Agradecer cualquier ayuda.
>
> Un abrazo
>
Me respondo a mi mismo por si a alguien le sirve...
El Notepad de Window le agrega un BOM al archivo al guardar como UTF-8:
http://es.wikipedia.org/wiki/Marca_de_orden_de_bytes_%28BOM%29
El script de Python modificado quedaría así para lograr esto:
# python
import codecs
path='original.xml'
path2='original_ok.xml'
f= open(path, 'rb')
content= f.read()
f.close()
f= open(path2, 'wb')
f.write( codecs.BOM_UTF8 )
f.write(content.encode('utf-8'))
f.close()
Me parece obtuso hacer este cambio a estas alturas, pero en fin, esa es
la tónica en las autoridades de mi país...
Saludos a todos
--
__________________________________
Mauricio Baeza Servín
Universo Libre México, A.C.
Fundador y Director General
www.universolibre.org
Todo lo que no podemos dar nos posee... Andre Gide
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20110709/545a3217/attachment.html>
More information about the pyar
mailing list