Buenos días
Ya está todo solucionado, hasta la siguiente.
Si alguien más tiene el mismo problema os cuento como lo he solucionado. Rebuscando por internet he encontrado este código.
Código Delphi
[-]interface
procedure SaveAsUTF8(const Fichero: string; Data: TStrings);
type
TUTF8NoBOMEncoding = class(TUTF8Encoding)
public
function GetPreamble: TBytes; override;
end;
implementation
function TUTF8NoBOMEncoding.GetPreamble: TBytes;
begin
SetLength(Result, 0);
end;
procedure SaveAsUTF8(const Fichero: string; Data: TStrings);
var
fs: TFileStream;
vStreamWriter: TStreamWriter;
Enc : TUTF8NoBOMEncoding;
begin
fs := TFileStream.Create(Fichero, fmCreate);
try
Enc := TUTF8NoBOMEncoding.Create;
vStreamWriter := TStreamWriter.Create(fs, Enc);
try
vStreamWriter.Write(Data.Text);
finally
vStreamWriter.Free;
end;
finally
fs.free;
Enc.Free;
end;
end;
En el caso del TicketBai tras la firma lo vuelvo a cargar, y lo vuelvo a guardar.
Código Delphi
[-] result := LoadXMLDocument(mi_fichero);
SaveAsUTF8(mi_fichero, result.XML);
En el caso del LROE lo guardo antes de generar el GZip.
Código Delphi
[-]
SaveAsUTF8(mi_fichero, result.XML);
Resultado, envío correcto.
Muchas gracias a todos por vuestra ayuda.