Delphi provides a straightforward way when saving text in TStringList in Unicode. Please see following example.

var
  myBatch:TStringList;
begin
  myBatch := TStringList.Create;
  myMatch.Items.Add('Hello, world!');
  myBatch.SaveToFile('d:\temp.txt',TEncoding.UTF8);
  myBatch.Destroy;
end;