lzuser hat geschrieben:sollte in der Trunk-Version nun nicht mehr ignoriert werden
Diesen Satz habe ich nicht verstanden. Hast du irgendwas bei IpHtmlPanel verändert oder zusätzlich eingestellt?
Ja. Trunk ist die Entwicklerversion von Lazarus, du brauchst SVN um darauf zuzugreifen. Oder du verwendest FPCUpDeluxe für die Installation.
Die Änderungen sind überschaubar und können auch leicht in eine andere Version des IpHtmlPanels eingebaut werden:
- Öffne die Datei (lazarus)/components/turbopower_ipro/iphtmlgenerated.inc
- In der Nähe von Zeile 110 gibt es die Aufzählung TIpHtmlAttributesSet. Füge zwischen htmlAttrCELLSPACING und htmlAttrCHECKED den Wert htmlAttrChARSET ein
- Weiter unten, etwa Zeile 400, gibt es das Array TIpHtmlAttributesNames. Füge ebenfalls zwischen 'CELLSPACING' und 'CHECKED' den String 'CHARSET' ein (groß geschrieben).
- Öffne die Datei (lazarus)/components/turbopower_ipto/iphtml.pas
- Suche die Prozedur TIpHtml.ParseMeta und ersetze sie durch diesen Code:
- Code: Alles auswählen
procedure TIpHtml.ParseMeta;
{$IFDEF IP_LAZARUS}
var
i,j: Integer;
{$ENDIF}
begin
with TIpHtmlNodeMETA.Create(Parent) do begin
HttpEquiv := FindAttribute(htmlAttrHTTP_EQUIV);
Name := FindAttribute(htmlAttrNAME);
Content := FindAttribute(htmlAttrCONTENT);
{$IFDEF IP_LAZARUS}
if SameText(HttpEquiv, 'content-type') and not FHasBOM then begin
j := pos('charset=', lowercase(Content));
if j>0 then begin
j := j+8;
i := j;
while (j<=Length(Content)) do begin
if Content[j] in [' ',';','"',','] then
break;
inc(j);
end;
fDocCharset := copy(content, i, j-i);
end else
fDocCharset := FindAttribute(htmlAttrCHARSET);
end;
{$ENDIF}
Scheme := FindAttribute(htmlAttrSCHEME);
end;
NextToken;
end;
- Anschließend das Package turbopoweripro.lp neu übersetzen
- Und vorher nicht vergessen, eine Sicherungskopie der geänderten Dateien anlegen
lzuser hat geschrieben:<meta charset="utf-8"> hatte ich wie berichtet doch schon probiert, selbst bei diesem einfachsten Beispiel funktioniert es nicht.
Klar, es liegen ja zwei Fehler vor: zum einen der oben korrigierte Fehler im IpHtmlPanel, der das CharSet-Attribut im Meta-Tag ignoriert hat. Und zum anderen dein Fehler, weil dein Html-Quelltext UTF8-kodiert ist, du dem Browser aber sagst, es wäre iso-8859-1.