phpbar.de logo

Mailinglisten-Archive

[php] Zeichencodierung in XML-Dokumenten (was: Was passiert da?)

[php] Zeichencodierung in XML-Dokumenten (was: Was passiert da?)

Peter Bieling network at media-palette.de
Die Jan 24 09:01:47 CET 2006


Hallo Norbert,

Norbert Pfeiffer wrote:

> hmm,
> festcodierte Zeichen sind einfach "boese", und wer sie verwendet
> sollte sich lieber mit etwas anderem beschaeftigen.

Du kannst in ein UTF-8 codiertes XML-Dokument keine deutschen 
Sonderzeichen ü ö ä ß schreiben, ohne das XML-Dokument ungültig zu machen.

Du kannst auch keine HTML-Entities in ein XML-Dokument schreiben, ohne 
diese entsprechend definiert zu haben.

Es schadet nicht, diese Seite noch einmal durchzuarbeiten ;-) :
http://de.selfhtml.org/xml/dtd/entities.htm

Entities kann man in XML (und auch in HTML) nur dann verwenden, wenn sie 
per DTD definiert wurden. Siehe z.B. für XHTML:
http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd
Diese DTD bindet unter anderem diese Entity-Deklaration ein:
http://www.w3.org/TR/xhtml1/DTD/xhtml-lat1.ent

Wie Du siehst, wird dort genau die Art von Codierung verwendet, die Du 
ablehnst:
Beispiel für das Leerzeichen:
<!ENTITY nbsp   "&#160;"> <!-- no-break space = non-breaking space,
                                   U+00A0 ISOnum -->

Also, wo ist das Problem, wenn die Entities ohnehin nur Platzhalter für 
das sind, was Du hartcodiert nennst? Browser, Editior usw., die 
XML-Dokumente verarbeiten können, können auch diese Codierung 
"verstehen" oder sie verstehen kein XML.

Das Problem des OP bestand ja ohnehin nur darin, dass mit 
Latin-1-Einstellung versucht wurde, UTF-8-Zeichen darzustellen. Für 
dieses Problem gibt es allerdings die entsprechende PHP-Funktion.

Soweit mein Versuch, das "Böse" mit Fakten und Tatsachen zu vertreiben.

Viele Grüße

Peter
-- 
http://www.media-palette.de/





php::bar PHP Wiki   -   Listenarchive