Als Anregung:
Ich verwende zum Tauschen der Byte Order folgende Funktion:
Delphi-Quellcode:
// Hilfsfunktion zum vertauschen der Byteorder in einem WideString
procedure SwapWideString(var ws:WideString);
var
i : Integer;
begin
for i := 1 to length(ws) do
ws[i] := WideChar(Swap(Ord(ws[i])));
end;
Beim byteweisen Einlesen sehe ich Performanceprobleme.
Ich lese UFT16 direkt auf einen WideString ein.
Wenn die BOM = $FFFE ist dann wird obige Procedure aufgerufen.