![]() |
Html codierte Umlaute PERFORMANT decoden?
Moin DP-Kollegen!
Ich habe ein kleines Problem mit Html-Umlauten einer Kontaktliste, die ich aus einer geparsten Intranetseite ausgelesen hab. "Bärchen" wird zum Beispiel zu "Bärchen" Gibt es eine Möglichkeit eine schnelle Dekodierung durchzuführen, die mir den originalen Namen liefert? Ich habe schon Urldecode von den Indys probiert, jedoch hat diese Funktion rein garnichts bei mir bewirkt. Zur Not kann ich auch Stringreplace verwenden, ber vielleicht hat ja jemand einen besseren Vorschlag dafür. :) Gruß Richard |
Re: Html codierte Umlaute PERFORMANT decoden?
URLDecode macht auch was anderes.
Du brächtest eine Delphi-Version von html_entity_decode() |
Re: Html codierte Umlaute PERFORMANT decoden?
Und sowas gibt es wohl nicht in Delphi?
Ok danke dir, also werd ich doch Stringreplace verwenden muessen. Gruß Richard |
Re: Html codierte Umlaute PERFORMANT decoden?
Vielleicht hat jemand so eine Funktion geschrieben, mir wäre aber keine bekannt.
|
Re: Html codierte Umlaute PERFORMANT decoden?
Zitat:
![]() Und wenn du deine HTML-Seite vernünftig mit einen HTML-Parser einliest ( ![]() |
Re: Html codierte Umlaute PERFORMANT decoden?
Hallo,
wer MSHTML eingebunden hat, der kann seine character entities einfach so eliminieren:
Delphi-Quellcode:
Grüße vom marabu
function HtmlToAnsi(const s: string): string;
var doc: OleVariant; begin doc := CoHTMLDocument.Create; doc.open; doc.Write(s); doc.Close; Result := doc.body.innerText; end; |
Re: Html codierte Umlaute PERFORMANT decoden?
@Bernhard
Die Utility Library sieht gut aus. :) Werde es mal testen. @Marabu MSHtml? Ist das ein Delphi Unit? Hast du eventuell weitergehende Erfahrungen damit. Mich wuerde vor allem Interessieren wie groß der Overhead ist? Gruß Richard |
Re: Html codierte Umlaute PERFORMANT decoden?
Zitat:
|
Re: Html codierte Umlaute PERFORMANT decoden?
Hallo.
Ich habe das selbe Problem. Ich brauche unbedingt eine Funktion, die HTML-Entities dekodiert. Hier ist mir die Geschwindigkeit eigentlich ziemlich egal, aber es ist wichtig, dass alle Zeichen vertreten sind. Ich möchte also keine unendlich lange Funktion haben, in der alle möglichen Entities einfach ersetzt werden, da hier die Gefahr besteht, dass Entities wie z.B. € vergessen werden. Es soll also eine universelle Funktion sein, die nicht veraltet. Die Utilities habe ich mit einem Tool komplett nach "HTML", "Decode" und "Entities" durchsucht - keine relevanten Treffer. Es scheint also keine Funktion dort zu geben, die html_entity_decode von PHP ersetzt. Ich werde das mit diesem OleVariant auch mal ausprobieren. MS-HTML und OLE hört sich für mich irgendwie nach Inkompatibilität oder gar Abhängigkeit von Microsoft's Internet Explorer an... Bin ich da auf dem Holzweg? Gruß blackdrake |
Re: Html codierte Umlaute PERFORMANT decoden?
Ja, da bist du voll vom IE abhängig - macht aber auch nicht so viel, solange du unter Windows bleibst, weil der IE sowieso immer dabei ist. Ich würde eine Hashmap in Verbindung mit einer eigenen Funktion empfehlen. In die Hashmap kommen alle Namens-Entitäten rein (so wie &, < usw.) und zusätzlich musst du dich noch um die Nummern-Entitäten wie * und B kümmern (oder so ähnlich, schau einfach mal auf SelfHTML).
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:57 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz