In general, there are a lot of problems with TFile, if possible - you should not use it.
The version of WriteAllText that you WriteAllText - writes to the file using the UTF8 encoding (which is good), but does not write to the BOM that there is a bad thing.
As a result, ReadAllText tries to guess the encoding (since there is no BOM) and considers it ANSI (it goes by default). If only English characters are present, then there are no problems, but other languages will really give cracks.
The way out: specify the encoding explicitly either when writing or reading:
// при записи: File.WriteAllText(OutFile, Content, TEncoding.UTF8); // в этом случае BOM будет записан и использован при ReadAllText // или при чтении: Content := TFile.ReadAllText(OutFile, TEncoding.UTF8);