HTML <--> UTF8

Rund um die LCL und andere Komponenten
Antworten
Benutzeravatar
Winni
Beiträge: 1577
Registriert: Mo 2. Mär 2009, 16:45
OS, Lazarus, FPC: Laz2.2.2, fpc 3.2.2
CPU-Target: 64Bit
Wohnort: Fast Dänemark

HTML <--> UTF8

Beitrag von Winni »

Hi!

Ich war meine schnellen Hacks zur HTML-Konvertierung leid.
Ich hab keine hinreichende Quelle zu diesem Thema gefunden - das Package fpc-xml ist recht dürftig in dieser Hinsicht.

Also hab ich selber die Strafarbeit gemacht, und die Konvertierungsliste für ca. 620 HTML Enties erstellt.

Das Interface ist trivial :

Code: Alles auswählen

function HTMLtoUTF8 (HTML: string): string;
procedure HTML2UTF8 (var s: String);

procedure UTF2HTML (var s : string);
function UTFtoHTML (utf8: string) : string;


Es kann also in beide Richtungen zwischen HTML und UTF8 konvertiert werden.

Folgende Gruppen von Sonderzeichen sind erfasst:

* Sonderzeichen von Latin1 von Skandinavien bis Spanien
* Währungssymbole
* Interpunktion
* Verschiedenes (Copyright, Telefon, Trademark ..)
* Brüche
* Mathematische Sonderzeichen
* Griechisches Alphabet

Falls es jemand gebrauchen kann

Ciao
Winni
Dateianhänge
converthtml.pas
(18.66 KiB) 44-mal heruntergeladen

Benutzeravatar
theo
Beiträge: 10498
Registriert: Mo 11. Sep 2006, 19:01

Re: HTML <--> UTF8

Beitrag von theo »

Gute Sache!
Zum Glück setzt sich auch im Web UTF-8 durch, so dass man &auml; und Konsorten bald vergessen kann.

Benutzeravatar
Winni
Beiträge: 1577
Registriert: Mo 2. Mär 2009, 16:45
OS, Lazarus, FPC: Laz2.2.2, fpc 3.2.2
CPU-Target: 64Bit
Wohnort: Fast Dänemark

Re: HTML <--> UTF8

Beitrag von Winni »

Hi!

Theo, das wäre so schön, wenn Du Recht hättest.

Negatives Gegenbeispiel:

www.tvtv.de

Hat gerade ein komplett neues Design bekommen.

Es wimmelt nur so von &auml; und &nbsp;

Wahrscheinlich: "Das haben wir immer so gemacht."

Winni

Benutzeravatar
theo
Beiträge: 10498
Registriert: Mo 11. Sep 2006, 19:01

Re: HTML <--> UTF8

Beitrag von theo »

Winni hat geschrieben:
Sa 21. Jan 2023, 18:29
Wahrscheinlich: "Das haben wir immer so gemacht."
Schon klar, dass das immer noch anzutreffen ist.
Es gibt nur keinen Grund mehr dafür! :lol:

wp_xyz
Beiträge: 4890
Registriert: Fr 8. Apr 2011, 09:01

Re: HTML <--> UTF8

Beitrag von wp_xyz »

Irgendwie habe ich sowas schon mal im FPC gesehen, ResolveHTMLEntities, o.ä. Bei der (erfolglosen) Suche danach bin ich dann aber das Folgende gestoßen (unit System.NetEncoding):

Code: Alles auswählen

procedure TForm1.Button1Click(Sender: TObject);
begin
  // Jeweils das ShowAccelChar der Labels ausschalten
  Label1.Caption := THTMLEncoding.HTML.Decode('&lt;&gt;&quot;&amp;  &copy;&auml;&Ouml;&uuml;&alpha;&frac12;');
  Label2.Caption := THTMLEncoding.HTML.Encode(Label1.Caption);
end;   
Leider funktioniert das Encode() für die umgekehrte Richtung nur für ein paar Zeichen.

Benutzeravatar
Winni
Beiträge: 1577
Registriert: Mo 2. Mär 2009, 16:45
OS, Lazarus, FPC: Laz2.2.2, fpc 3.2.2
CPU-Target: 64Bit
Wohnort: Fast Dänemark

Re: HTML <--> UTF8

Beitrag von Winni »

wp_xyz hat geschrieben:
Sa 21. Jan 2023, 20:00

Leider funktioniert das Encode() für die umgekehrte Richtung nur für ein paar Zeichen.
Hi!

Kann sein, dass die intern fcl-xml benutzen. Das ist nämlich relativ dürftig, wie bereits oben geschrieben.

Ich hab ziemlich viel im Web gesucht, ob es dafür ne Unit gibt, aber nix Befriedigendes gefunden.
Deshalb hab ich es selbst geschieben.

Winni

Antworten