dedlfix: BOM \X\0\X\0 - Frage zu Zeichensätzen

Beitrag lesen

echo $begrüßung;

Nach jedem zweiten Zeichen tritt das ASCII-Zeichen 0 (String-Ende) auf.

Ein 0-Byte steht vielleicht in C für ein String-Ende, hat aber in ASCII oder anderen Zeichenkodierungen diese Bedeutung nicht.

Beispiele:
www.wienproducts.at
www.gbvienna.com

Interessant:
http://www.google.at/search?hl=de&q=www.wienproducts.at
http://www.google.at/search?hl=de&q=www.gbvienna.com

Kann mir jemand erklären, was es damit auf sich hat?

Beide Beispiele sind fehlerhaft. Die Zeichenkodierung wird durch eine ergänzende Angabe (charset=...) im HTTP-Header "Content-Type" angegeben. Fehlt diese, kann ein gleichnamiges Meta-Element herangezogen werden. Beide Seiten haben keine Angabe im HTTP-Header. Das erste Beispiel hat ein Meta-Element, das aber fälschlicherweise UTF-8 angibt. Das zweite verzichtet auf dieses Element. Beide Dokumente beginnen aber mit einer so genannten Byte-Order-Markierung (BOM), und aus der errät der Firefox die zu verwendende Kodierung (Rechtsklick -> Seiteninformation anzeigen). Google hingegen scheint an dem Ratespiel keine Lust zu haben. Vermutlich deswegen kommt es dort zu den von dir beobachten Lücken zwischen den einzelnen Zeichen und der Anzeige der HTML-Elemente.

echo "$verabschiedung $name";