No. There is nothing in an ordinary ansi text file from which you could guess the code page. BTW, the standard CP1252 would have worked as well (-->CP1252ToUTF8()).
I wonder why the conversion fails if the file is read directly into the Lines of the Memo:
Memo1.Lines.LoadFromFile('subansi.txt');
Memo1.Lines.Text := CP1252ToUTF8(Memo1.Lines.Text); // --> incorrect conversion
And I also wonder why AnsiToUtf8 or SysToUtf8 are not working (neither on fpc 2.6.4 nor on fpc 3.0).