Diese Bytes sind ja nicht das Entscheidende, sondern die Codierung als UTF-8, und die hast du bisher ja nicht gezeigt. Zudem kann man das glaube ich auch im Header noch einmal setzen, der mit der Datei geschickt wird (per PHP ggf.). Der sollte natürlich auch auf UTF-8 lauten. Wie hast du die denn gemacht? Dies funktioniert jedenfalls problemlos, auch ohne diese Bytes:
Delphi-Quellcode:
var
test: TStringList;
begin
test := TStringList.Create;
test.Text := Utf8Encode('
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">'
+ #13#10'
<html xmlns="http://www.w3.org/1999/xhtml">'
+ #13#10'
<head>'
+ #13#10'
<meta http-equiv="Content-Language" content="de" />'
+ #13#10'
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />'
+ #13#10'
<title>Example</title>'
+ #13#10'
</head>'
+ #13#10'
<body>'
+ #13#10'
Das ist ein Text mit ä, ö und ü als Umlaute drin.'
+ #13#10'
</body>'
+ #13#10'
</html>');
test.SaveToFile('
b:\xyz.html');
test.Free;
Die Bytes kannst du natürlich zusätzlich auch hinzufügen.