[SOLUCIONADO] ESP8266 caracteres entraños en print SPIFFS

Hace falta esto @PeterKantTropus

Entiendo el uso de SPIFFS, lo he usado en algunos de mi proyectos, pero los archivos guardados en la flash del esp8266 no se pueden leer directamente, tienen que ser descargados o servidos por el propio esp8266. Entiendo que esta utilizando un servidor FTP, pero eso le agrega una capa mas de complejidad y posibilidad de errores.

Yo intentaría recuperar el archivo por serial y descartar la posibilidad de error en el servidor FTP.

Uso WinSCP, efectivamente tengo un servidor FTP montado en él.
Dudo y mucho que sea problema del servidor FTP dado que con otros ficheros que genero (genero uno anual, otro mensual, otro diario y otro horario) pasa exactamente lo mismo y si reseteo y vuelvo a descargar los ficheros por FTP aparecen los mismos caracteres en los mismos sitios.
Además depende si pongo:
println(";");
o
print(";\n");
Salen dos o tres ¨Y respecivamente siendo problema obvio del spiffs y no de la transmisión ftp en sí.
Además en una prueba que hice devolví el csv encapsulado en un html y lo mismo...
Saludos

Por eso te aclaré que lo probaras solo para "\n".
Y si, es muy probable que sea un bug en la librería.

Saludos

Pues malas noticias,
Parece que con write((byte)13) y con print((chr)13) también sale mal:

2021-11-04 13:36:00;343;1,27;1,24
2021-11-04 14:00:00;862;2,29;2,02
2021-11-04 15:00:00;860;318,46;116,2ÿÿÿ2021-11-04 16:00:00;865;20,85;15,82
2021-11-04 17:00:00;862;23,49;13,71
2021-11-04 18:00:00;843;0,37;0,30
2021-11-04 19:00:00;859;167,69;167,67

      ficheroVatios.write((byte)13); //mandar cr+lf
      ficheroVatios.write((byte)10);

Le tiene manía al caracter 13...
Y ya preguntando, ¿será cosa de esta placa concreto? es una de marca az-delivery

Esta exactamente:

Saludos.

Vale, despues de muchos quebraderos de cabeza y daros a vosotros otros tantos, he decidido cambiar SPIFFS por LittleFS y parece que así funciona bien.
Ya de paso comento como se hace el cambio de SPIFFS por LitteFS de la forma más fácil sin rescribir mucho código:
Después de la carga de todas las cabeceras (.h), se incluye:


#include <LittleFS.h>
#define SPIFFS LittleFS

Dado que yo uso ESP8266FTPServer, esa librería no está preparada para funcionar con LitteFS por lo que hay que incluir esas dos líneas también y quitar la de fs.h si se quiere.
Pero, como SPIFFS utiliza el primer caracter para incluir una "/" de raíz de directorio, hay que retocar un poco el fuente y comentar todas las lineas qu eaparece:

			fn = dir.fileName();
			//fn.remove(0, 1); //comentado por DanX3 05/11/2021 para que funcione con littlefs
			fs = String(dir.fileSize());

No recuerdo si hay 2 o 3 líneas fn.remove(0, 1); pero hay que comentarlas todas, sino cuando escribes un fichero "prueba.txt" te escribe "rueba.txt" y no puedes descargar tampoco del ftp.

Gracias a todos por el esfuerzo.
Saludos.