Zeichenkodierung
Daniel P.
- html
Wenn ich in einer HTML/XHTML-Datei als Zeichenkodierung ISO-8859-1 angebe, kann ich davon ausgehen, das Sonderzeichen ala ä,ö,ü und Co. (also die typisch deutschen Sonderzeichen), die im HTML/XHTML-Dokument in Klartext geschrieben sind, auch als solche im Browser ausgegeben werden. Nun gibt es für die Sonderzeichen auch "named entities". Ich habe bereits an verschiedenen Stellen gelesen, dass man diese nicht verwenden soll. Wieso? In SelfHTML steht, dass es in bestimmten Situationen erforderlich ist, diese zu verwenden. Welche Situationen sollen das sein (außer die HTML-spezifischen Zeichen < > " und &, wo's tatsächlich nicht anders geht)?
echo $begrüßung;
Wenn ich in einer HTML/XHTML-Datei als Zeichenkodierung ISO-8859-1 angebe, kann ich davon ausgehen, das Sonderzeichen ala ä,ö,ü und Co. (also die typisch deutschen Sonderzeichen), die im HTML/XHTML-Dokument in Klartext geschrieben sind, auch als solche im Browser ausgegeben werden.
Du kannst im Allgemeinen davon ausgehen, dass Browser und andere Programme Zeichen, die gemäß einer bestimmten Kodierungsvorschrift korrekt kodiert sind, richtig darstellen können, wenn das Programm außerdem noch zu erfahren bekommt, welche Kodierung verwendet wurde, und das Programm natürlich mit der Kodierung umgehen kann.
Den Begriff "im Klartext" kann man dabei so nicht verwenden. Klartext ist es immer, wenn Kodierung und Dekodierung ordentlich funktioniert haben.
Nun gibt es für die Sonderzeichen auch "named entities". Ich habe bereits an verschiedenen Stellen gelesen, dass man diese nicht verwenden soll. Wieso? In SelfHTML steht, dass es in bestimmten Situationen erforderlich ist, diese zu verwenden. Welche Situationen sollen das sein (außer die HTML-spezifischen Zeichen < > " und &, wo's tatsächlich nicht anders geht)?
Man kann sie dann verwenden, wenn man mit seiner Tastatur das Zeichen nicht eingegeben bekommt. Außerdem kann man sie verwenden, wenn es in der verwendeten Zeichenkodierung das zu gewünschte Zeichen nicht vorkommt. Beispielsweise kommt das Euro-Zeichen nicht in ISO-8859-1 vor.
echo "$verabschiedung $name";
Man kann sie dann verwenden, wenn man mit seiner Tastatur das Zeichen nicht eingegeben bekommt. Außerdem kann man sie verwenden, wenn es in der verwendeten Zeichenkodierung das zu gewünschte Zeichen nicht vorkommt. Beispielsweise kommt das Euro-Zeichen nicht in ISO-8859-1 vor.
Bedeutet das, dass ich im HTML/XHTML direkt ö,ä,ü,... (im "Klartext") eingeben kann und diese auch richtig angezeigt werden - die Zeichen müssen sich also nur im angegebenen Zeichensatz befinden?
echo $begrüßung;
Bedeutet das, dass ich im HTML/XHTML direkt ö,ä,ü,... (im "Klartext") eingeben kann und diese auch richtig angezeigt werden - die Zeichen müssen sich also nur im angegebenen Zeichensatz befinden?
Es bedeutet, dass du die Zeichen in der Kodierung eingeben kannst, die du für das Dokument verwendest. In dieser Gegend ist immer noch ISO-8859-1 (oder das weitgehend kompatible Windows-1252) vorherrschend. Wenn du das als Klartext bezeichnest, dann lautet die Antwort: ja.
Möchtest du statt ISO-8859-1 die Kodierung UTF-8 verwenden und alle beteiligten Komponenten (dein Editor, der Browser) sprechen UTF-8, dann ist in dem Fall ein UTF-8-kodierter Text "Klartext", usw.
echo "$verabschiedung $name";
Es bedeutet, dass du die Zeichen in der Kodierung eingeben kannst, die du für das Dokument verwendest. In dieser Gegend ist immer noch ISO-8859-1 (oder das weitgehend kompatible Windows-1252) vorherrschend. Wenn du das als Klartext bezeichnest, dann lautet die Antwort: ja.
Das ist ja bescheiden. Ich bastel jetzt seit einigen Jahren mit HTML herum und steige jetzt auf XHTML um und finde diesen Kram zur Zeichenkodierung in SelfHTML. Dann habe ich die letzten Jahre immer schön umsonst die Zeichen per Hand maskiert, obwohl mir die Angabe zum Zeichensatz die Arbeit abgenommen hätte. Mist. Man lernt nie aus - äußerst schmerzhaft :-/
Danke für die Erleuchtung !!!