Ich habe diesen Code, dass einige keine lateinische charcter einfügen und es dann zu idTcpclient
Wie lese ich nicht lateinische Charactes im Speicher-Stream, der von iDTCPServer gesendet wurde?
LVU := TStringList.Create;
LVU.Add('مرحبا');
try
if (LVU.Count > 0) then
begin
memorylist := TMemoryStream.Create;
try
LVU.SaveToStream(memorylist);
memorylist.Position := 0;
AContext.Connection.IOHandler.DefStringEncoding := IndyTextEncoding_UTF8;
AContext.Connection.IOHandler.LargeStream := true;
AContext.Connection.IOHandler.Write(memorylist, 0, true);
finally
memorylist.Free;
end;
end;
finally
LVU.Free;
end;
von IDTCPserver
senden, aber wenn Kunde sie empfangen, den Text innerhalb ms als recive ‚???????‘ Was könnte das Problem sein? Ich habe bereits die Verbindungscodierung zu utf8
Ich betreibe diesen Server auf Ubuntu. Wenn ich den Server unter Windows ausprobiere, habe ich den Text normal bekommen.
Und das ist, wie ich Stream auf Client-Seite lesen
FMSFROMCALL := TMemoryStream.Create;
FTCP.Socket.LargeStream := True;
FTCP.Socket.ReadStream(FMSFROMCALL, -1, false);
FMSFROMCALL.Position := 0;