Re: PHP, HTML und deutsche Eigentümlichkeiten

Datumsansicht Baumansicht Betreffansicht Attachement-Sicht

Autor: Jan Wildeboer (jan.wildeboer_at_gmx.de)
Datum: 01. Oct 2002


Andreas Fiesser wrote:
> Hi,

> Wann müßte ich Probleme erwarten, wenn ich die Zeichen pur einsetze
> ?
>
> Der Head-Tag <meta http-equiv="content-type"
> content="text/html;charset=utf-8"> sagt dem Browser doch was
> da auf ihn zukommt.

Wenn der Besucher einen Browser verwendet der das content-tag nicht
auswertet gibt es ein Problem. Wenn der Besucher ein Operating System
benutzt das iso-8859-1 nicht darstellen kann gibt es ein Problem. Wenn
Du das Euro-Zeichen verwenden willst gibt es ein Problem (Das ist in
ISO-8859-15 enthalten, bei ISO-8859-1 gibt's nur ein Fragezeichen und
wenn die installierten Fonts des Users kein Euro-Zeichen beinhalten
gibts gar nix zu sehen)

> Ich bin gerade dabei was mit PHP zu basteln, was aus einer Datenbank
> Webseiten erzeugt.
> Die Datenbank & Template-Geschichte funktioniert schon prima. Jetzt
> will ich nur noch möglichst korrektes HTML erzeugen.

Da gehen die Meinungen auseinander. Die sauberste und beste Lösung ist
meiner Meinung nach Unicode zu verwenden, z.B. UTF-8. Damit hat man alle
Probleme erschlagen, aber das funktioniert nicht überall. ISO-8859-1 ist
wegen der Euro-problematik nicht sinnvoll, IMHO. Ich verwende eigentlich
immer UTF-8 oder 8859-15, je nach anvisiertem Publikum.

> Es sollte dabei möglich sein, dass "technisch unbedarfte"
> Mitarbeiter, dh die Geschäftsleitung, via einem Formular
> Pressemeldungen einpflegen können sollen.

htmlspecialchars() ist dein Freund. Inputvalidierung ist oberste
Pflicht. Auch um Cross-Site-Scripting zu vermeiden ist Validierung und
Kontrolle sehr wichtig. Nicht vergessen sollte man auch das MySQL
entsprechende Einstellungen braucht um die 8859-15 Zeichenketten zu
speichern. htmlspecialchars() löst dieses Problem am elegantesten, da
nur ASCII-Werte gespeichert werden. UTF-8 löst es am saubersten, da es
auch nur ASCII verwendet aber bei vielen Sonderzeichen ziemlich
verschwenderisch werden kann. uft8decode() und utf8encode() solltest Du
dir trotzdem mal angucken. Ich würde grundsätzlich alles in UTF-8
speichern und mit entsprechenden Routinen die Ausgabe dann in UTF-8 oder
8859-15 machen.

> HTML-Tags zum Formatieren müßten im Textarea mit eigetragen werden
> können und man sollen nicht &auml; statt ä schreiben müssen.

Mit htmlspecialchars() und/oder utf8{de, en}code können deine Dummuser
eintragen was sie wollen, die Normalisierung sorgt dann dafür dass die
richtigen Daten gepseichert werden.

> Ich könnte jetzt mit str_replace() die Umlaute selbst austauschen,
> aber dann würden alle anderen denkbaren Sonderbuchstaben zB
> französische noch nicht erfasst.

UTF-8 löst all deine Probleme ;-)

> Und wo wir grad dabei sind ... hat schon jemand was mit einer
> Auszeichnungssprache produziert, die wiederum automatisch in andere
> übertragen werden kann ?
> Also ich schreibe in X und ein Programm produziert daraus zB
> wahlweise HTML, TeX, PDF.
>
> Was nimmt man da am besten ?

XML mit Scheme oder XSLT.

HTH

Jan Wildeboer


Datumsansicht Baumansicht Betreffansicht Attachement-Sicht

Dieses Archiv wurde generiert von hypermail 2.1.4 : 01. Oct 2002 CEST