Dumme Frage wahrscheinlich. Angenommen wir haben ein leere Text-Datei. Ganz leer, null Byte. .NET gibt für
System.IO.File.ReadAllText(path, Encoding.Unicode);
einen leeren String zurück, Delphi fliegt bei
TFile.ReadAllText(filePath, TEncoding.Unicode);
mit einer
EEncodingError
-
Exception "Invalid source array" raus.
Technisch ist das wenig verwunderlich, denn die Delphi-Implementation versucht als erstes direkt den zwei Byte langen BOM aus dem Stream zu lesen der null Byte Inhalt hat und scheitert daran.
Meine Frage: Ist das korrekt so? Wenn vereinbart ist "
Unicode", dann kann ich die zwei BOM-Bytes auch zwingend erwarten? Wenn sie fehlen ist es keine valide Datei?