Hallo,
ich habe folgendes Problem:
Ich speichere einen Text (mit UTF-8 Zeichen) in einem MemoryStream ==> Text
Nach Ausgabe des Memorystreams in eine Textdatei (stream.saveToFile('test.txt')) werden dort alle Zeichen korrekt dargestellt.
Ich benötige den Streaminhalt jedoch in einem widestring.
Mit TReader bekomme ich den Fehler "ungültiger Eigenschaftswert". (siehe Funktion StreamToWideString)
Hat jemand einen Lösungsansatz? Ziel ist es, dass alle UTF-8 Zeichen korrekt dargestellt werden.
Delphi-Quellcode:
procedure TForm1.Test;
var
Text : TMemoryStream;
ws : widestring;
begin
Text := TMemoryStream.Create;
(query1.FieldByName('TestBobfeld') as TBlobField).SaveToStream(Text);
ws := StreamToWideString(Text);
end;
function TForm1.StreamToWideString(AStream : TMemorystream): WideString;
var
r : TReader;
begin
AStream.Position := 0;
r := TReader.Create(AStream,AStream.Size);
ws := r.ReadWideString;
result := ws;
r.free
end;