phpbar.de logo

Mailinglisten-Archive

[php] Character Entities

[php] Character Entities

Susanne Jäger susjaeger at sujag.de
Mon Okt 31 14:01:32 CET 2005


Hallo Lutz,

Lutz Zetzsche wrote, On 31.10.2005 13:10:

> Du hast natürlich im Prinzip recht. Vermutlich verwendet man - ich nehme
> mich da nicht aus - unreflektiert die HTML-Entitäten weiter, weil man es
> immer so gemacht hat. Vor den Unicode-Zeiten hat man das so gelernt, und
> da war das ja auch noch sinnvoll. :-)

Mit Unicode hat das direkt gar nicht so viel zu tun und wie lange (oder
ob jemals) es sinnvoll war, mag ich nicht entscheiden. Die
entsprechenden Passagen in der HTML4.01 Deklaration sind eindeutig und
die Browserunterstützung ist spätestens mit der 4er-Generation gegeben,
ich bin jetzt zu faul mich durch alte HTML-Specs und SGML zu wühlen.

> Heute kann ich mir eigentlich auch nur noch zwei Szenarien vorstellen, wo
> die Verwendung der Entitäten Sinn macht:
> 
> 1. Die Mischung verschiedener Zeichensätze in einer Seite. Das hattest Du
> indirekt auch schon angesprochen.

Selbst dann ist es IMHO sinnvoll die bevorzugte Encoding zu
identifizieren und als Basis zu verwenden, valide (X)HTML-Dokumente
müssen ohnehin einen Charset-Angabe mitbringen. Bei Dokumenten oder
Anwendungen, die tatsächlich zu (fast) gleichen Teilen verschiedenen
Sprachgruppen entstammen wirst du mit den entities eh nicht glücklich.
Der Regelfall sind IMHO ein paar Ausreißer auf einzelnen Seiten.

> 2. Wenn man ganz auf Nummer Sicher gehen will. ;-) Egal, welcher
> Zeichensatz für die Seite mitgegeben wird oder welcher Zeichensatz im
> Browser eingestellt ist, der durch die Entität repräsentierte Buchstabe
> wird korrekt angezeigt. Auch in Asien oder so. :-) Das ist auch der Grund,
> warum ich noch mit Entitäten arbeite. Ich bin halt etwas paranoid. ;-)

Das ist nicht unbedingt paranoid, es ist einfach
+ eine Verschwendung von Bandbreite (5 Zeichen statt einem),
+ wartungsaufwändig und zu Fehlern verführend - eigentlich kümmert sich
das Sytem ja drum, deswegen wird keine korrekte Charset-Angabe
eingestellt, aber dann wird doch an einer Stelle manuell ein deutscher
Text verwendet und man vergisst die Umlautkodierung.
+ In Asien oder so :-) wird der codierte Umlaut nur angezeigt, wenn ein
entsprechender Font installiert ist und das Betriebssystem in der Lage
ist exotische Zeichen richtig wiederzugeben ;-) Dafür hast du keine
Garantie, egal was du deklarierst. Ich vermute allerdings, dass die
Wahrscheinlichkeit etwas höher ist, als dass ich umgekehrt korrekt
deklarierte japanische Zeichen zu sehen bekomme, da zumindestens die
neueren Truetype-Fonts i.d.R die europäischen Sprachen abdecken.

> Auf dem Umstieg auf UTF-8 muß ich noch etwas verzichten, weil ich dafür
> entweder eine passende, also höhere MySQL-Version auf dem Online-Server
> benötige oder auf Postgres umsteigen müßte, weil die auf dem Server UTF-8
> schon beherrscht.

Richtig, das ist das wichtigste Argument dem UTF-8 Hype nicht blind
nachzulaufen: Unterstützung durch Datenbank und sämtliche in der
Produktionskette eingesetzten Editoren, hat aber mit der Verarbeitung
westeuropäischer Texte nicht das geringste zu tun.

Ich habe übrigens meinem Brotbrowser schon vor einigen Jahren
beigebracht UTF-8 als default-Codierung zu verwenden, wenn Dokument und
Server sich zum Thema ausschweigen, um eigenen Fehlern und
Nachlässigkeiten schneller auf die Spur zu kommen. (Spracheinstellungen
- Default Charset) Es ist erschreckend, wie viele - auch große Anbieter
- hier komplett versagen und sich auf die fortgeschrittene Ratetechnik
westeuropäischer Browser verlassen.

IIRC gibt es übrigens irgendeine XHTML-Variante, bei der dir die
benannten entities um die Ohren fliegen. (Auslieferung als application
xhtml/xml ohne besondere Vorkehrungen?)

Gruß
Susanne


-- 
http://sujag.de - Webentwicklung und -beratung
susjaeger at sujag.de
Lottumstr. 22, 10119 Berlin, Tel: 030 - 440 483 47

php::bar PHP Wiki   -   Listenarchive