Página 5 de 12

Re: Validador SAT-Error: CFD no codificado en: UTF-8.

Publicado: Mié Jul 13, 2011 12:46 pm
por bonzipper
Yo utilice esta función para el PHP

<?php

function writeUTF8File($filename,$content) {
$f=fopen($filename,"w");
# Now UTF-8 - Add byte order mark
fwrite($f, pack("CCC",0xef,0xbb,0xbf));
fwrite($f,$content);
fclose($f);
}
?>

Siendo la linea mas importante esta:
fwrite($f, pack("CCC",0xef,0xbb,0xbf));

Saludos

Re: Validador SAT-Error: CFD no codificado en: UTF-8.

Publicado: Mié Jul 13, 2011 1:04 pm
por Hiram
Alguien podría publicar cómo queda el XML con el BOM ??? Gracias de antemano....

Re: Validador SAT-Error: CFD no codificado en: UTF-8.

Publicado: Mié Jul 13, 2011 1:18 pm
por Dado
Hiram escribió:Alguien podría publicar cómo queda el XML con el BOM ??? Gracias de antemano....
Normalmente NI EL BLOC DE NOTAS NI EL EXPLORER te van a mostrar el BOM, solo con un editor hexadecimal puedes verlo :
bom.jpg
bom.jpg (135.19 KiB) Visto 9977 veces
Te incluyo el XML de ejemplo tambien.

Re: Validador SAT-Error: CFD no codificado en: UTF-8.

Publicado: Mié Jul 13, 2011 1:33 pm
por CesarIn
Hola MARISCAL, Yo tambien trabajo sobre Linux. Probe tu Bash y funciona de maravilla

¿¿Pero me podrias hacer un favor?? Como indicarle al script que en un directorio busque mas directorios y los archivos XML contenidos en ellos??

Me explico, mi estructura de directorios donde guardo los XML es asi:

/Facturas
/Cliente 1
/Cliente 2
/Cliente 3
...

Como podria recorrer esta estructura de directorios con el Bash y encontrar todos los XML contenidos en ellos???

Gracias de antemano por la ayuda. Saludos.

Re: Validador SAT-Error: CFD no codificado en: UTF-8.

Publicado: Mié Jul 13, 2011 1:58 pm
por mariscal
Que tal CESARIN, te recomiendo lo siguiente, solo si todos tus directorios estan directo en la raiz (/):

Código: Seleccionar todo

#
Directorios="/Facturas /Cliente1 /Cliente2"

for Directorio in $Directorios; do
    xmls=`find $Directorio -maxdepth 1 -type f -name '*.xml'`

    for xml in $xmls; do
        contador=$(sed -n '/\xEF\xBB\xBF/p' $xml | wc -l)
        if [ $contador -eq 0 ]; then
           sed -i '1s/^/\xEF\xBB\xBF/' $xml
        fi
    done
done

exit
#
# eof()
#
Osea nada mas llena la variable $Directorios con los paths que ocupes.


Pero si no estan directos en la raiz, prueba con aumentarle el maxdepth a 2 esto:

Código: Seleccionar todo

#
Directorio="/cfd"
xmls=`find $Directorio -maxdepth 2 -type f -name '*.xml'`

for xml in $xmls; do
	contador=$(sed -n '/\xEF\xBB\xBF/p' $xml | wc -l)
	if [ $contador -eq 0 ]; then
	   sed -i '1s/^/\xEF\xBB\xBF/' $xml
	fi
done

exit
#
# eof()
#
Esto es para que modifique todos los directorios que esten dentro el path de la variable $Directorio.

Re: Validador SAT-Error: CFD no codificado en: UTF-8.

Publicado: Mié Jul 13, 2011 3:35 pm
por darkcode
mi aportacion para esta humilde comunidad de personas que toman mucho cafe como yo.... (y que con este cambio seguiremos tomando mucho mas cafe)

para PHP, pudieras escribir a 3.9millones de XML los famosos 3 bits del BOM o


$file = $RUTAFISICADETUXMLENSISTEMA"abc123.xml";
$stream=file_get_contents($file);

echo b"\xEF\xBB\xBF";
header ("Content-Disposition: attachment; filename=\"abc123.xml\"" );
header ("Content-Type: text/xml; charset=utf-8");
echo $stream;


al final hablando en terminos de bites es un chorizo mexclado de bites, so? agregale escupele los primeros 3 bites del BOM

Re: Validador SAT-Error: CFD no codificado en: UTF-8.

Publicado: Mié Jul 13, 2011 3:46 pm
por eveleza
Gracias condor0086, lo necesitaba porque un cliente se quejó de que las facturas no estaban pasando en el validador.

Re: Validador SAT-Error: CFD no codificado en: UTF-8.

Publicado: Mié Jul 13, 2011 4:34 pm
por CesarIn
Muchas gracias MARISCAL, corre muy bien tu bash. Me salvaste de corregir a mano mas de 9,000 doctos. solo aqui en la Matriz (mas otros 20,000 en sucursales). Te debo una.

La verdad es que estos jijos del SAT siempre han creido que no habria quien pudiera con todas las trabas que han puesto para el desarrollo de los CFDs. Desde las primeras (oscuras) definiciones de los CFD's, hasta el cambio de jugada a los CFDIs a mediados de 2010 cuando se dieron cuenta que muchos programadores habiamos podido implementar una solucion (y que obviamente les quitabamos parte del negocio).

Por que es bien sabido que muchos de los despachos que lograron tener Autorizacion para ser Proveedores de CFD's o son cuates o prestanombres de los mismos directivos del SAT (los que ahora tienen la exclusividad del timbrado)

Y es que no contaban con que en realidad en este pais hay mucha gente muy capaz, inteligente, emprendedora y sobre todo con la capacidad de solidarizarse y ayudar a los demas.

Gracias a todos y a seguir brincandole todas sus cochinadas al SAT.

Re: Validador SAT-Error: CFD no codificado en: UTF-8.

Publicado: Mié Jul 13, 2011 4:54 pm
por erwinpc
Bueno pues los XML ya tienen el BOM, pero hace un momento un cliente me llamo y me dijo que los XML son invalidos, segun eso dice el validador del SAT, esto quiere decir que restablecieron el Validador? y ahora de nuevo los XML deben de ir sin el BOM?

Re: Validador SAT-Error: CFD no codificado en: UTF-8.

Publicado: Mié Jul 13, 2011 5:05 pm
por poliman
erwinpc escribió:Bueno pues los XML ya tienen el BOM, pero hace un momento un cliente me llamo y me dijo que los XML son invalidos, segun eso dice el validador del SAT, esto quiere decir que restablecieron el Validador? y ahora de nuevo los XML deben de ir sin el BOM?
NO, el validador sigue necesitando el BOM para dar un resultado correcto, probablemente no modificaste los archivos bien.

:?