Delphi 2009 기준. (String이 기본적으로 WideString)
uses SysUtils 필요.



function ReadUTF8File(Path: String): String;
var
  fStream: TFileStream;
  Buffer: TBytes;
begin
  Result:='';
  if not FileExists(Path) then Exit;

  fStream:=TFileStream.Create(Path, fmOpenRead);
  try
    SetLength(Buffer, fStream.Size);
    fStream.ReadBuffer(Pointer(Buffer)^, Length(Buffer));
    Result:=TEncoding.UTF8.GetString(Buffer, 0, fStream.Size);
  finally
    FreeAndNil(fStream);
  end;
end;






Posted by bloodguy
,