Versuche mal folgendes: Verzichte auf Buf, deklariere DataOut als TStringStream und ersetze diese Zeilen
Delphi-Quellcode:
DataOut := TMemoryStream.Create; { For the data to be sent }
DataOut.Write(Buf[1], Length(Buf));
mit dieser
Delphi-Quellcode:
DataOut := TStringStream.Create(StringWriter.ToString, TEncoding.UTF8, False); { For the data to be sent }
Alternativ könntest du auch Buf als UTF8String deklarieren, aber ich finde die explizite Angabe des Encoding in diesem Ansatz leichter les- und wartbar.