[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