Kodierungen von Deutschen Umlauten und '&', '<' und '>'
Lude
- xml
Hi,
ich wandele fuer HTML wie folgt um:
$FilterObjekt =~ s/ä/ä/g;
$FilterObjekt =~ s/ö/ö/g;
$FilterObjekt =~ s/ü/ü/g;
$FilterObjekt =~ s/Ä/Ä/g;
$FilterObjekt =~ s/Ö/Ö/g;
$FilterObjekt =~ s/Ü/Ü/g;
$FilterObjekt =~ s/ß/ß/g;
fuer XML moechte ich, damit der Validator nicht meckert u.a. auch das kaufmaennische Und umwandeln:
Wandele ich mit Perl so wie im ersten Block beschrieben um, "funzt" es in der Browseranzeige. Aber wenn ich dann "fuer XML" das kaufmaennische Und umwandeln moechte, dann "funzt" es beim XML-Validator(XMLSpy), aber die Anzeige im Browser "schaltet" von 'ü' auf 'Ü' um.
Augezeichnet ist das Dokument mit:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
Was tun?
Gruss,
Lude
Hi,
ich wandele fuer HTML wie folgt um:
$FilterObjekt =~ s/ä/ä/g;
$FilterObjekt =~ s/ö/ö/g;
$FilterObjekt =~ s/ü/ü/g;
$FilterObjekt =~ s/Ä/Ä/g;
$FilterObjekt =~ s/Ö/Ö/g;
$FilterObjekt =~ s/Ü/Ü/g;
$FilterObjekt =~ s/ß/ß/g;
fuer XML moechte ich, damit der Validator nicht meckert u.a. auch das kaufmaennische Und umwandeln:$FilterObjekt =~ s/&/&/g;
Wandele ich mit Perl so wie im ersten Block beschrieben um, "funzt" es in der Browseranzeige. Aber wenn ich dann "fuer XML" das kaufmaennische Und umwandeln moechte, dann "funzt" es beim XML-Validator(XMLSpy), aber die Anzeige im Browser "schaltet" von 'ü' auf 'Ü' um.
Die Reihenfolge ist entscheidend! ZUERST die & umwandeln. Danach die anderen Zeichen.
Hast Du eigentlich die Entities für die Umlaute in Deiner DTD/Schema für XML definiert? Die sind bei XML nämlich nicht standardmäßig vorhanden...
cu,
Andreas
Hi,
Die Reihenfolge ist entscheidend! ZUERST die & umwandeln. Danach die anderen Zeichen.
danke; sollte mal wieder einen Intelligenztest machen.
Hast Du eigentlich die Entities für die Umlaute in Deiner DTD/Schema für XML definiert? Die sind bei XML nämlich nicht standardmäßig vorhanden...
Der Validator scheint durch die Umlaute dank der Auszeichnung '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">' zu kennen, bzw. meckert jedenfalls nicht. Oder meinst Du etwas anderes?
Gruss,
Lude
Hi,
Hast Du eigentlich die Entities für die Umlaute in Deiner DTD/Schema für XML definiert? Die sind bei XML nämlich nicht standardmäßig vorhanden...
Der Validator scheint durch die Umlaute dank der Auszeichnung '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">' zu kennen, bzw. meckert jedenfalls nicht. Oder meinst Du etwas anderes?
Ok, wenn Du XHTML benutzt, sind die Umlaute definiert. Bei XML allgemein jedoch nicht.
Ich hatte den doctype am Ende Deines ersten Postings überlesen - und weiter oben war immer nur von XML die Rede...
XHTML ist zwar auch XML, aber nicht umgekehrt
cu,
Andreas
Holladiewaldfee,
Wandele ich mit Perl so wie im ersten Block beschrieben um, "funzt" es in der Browseranzeige. Aber wenn ich dann "fuer XML" das kaufmaennische Und umwandeln moechte, dann "funzt" es beim XML-Validator(XMLSpy), aber die Anzeige im Browser "schaltet" von 'ü' auf 'Ü' um.
Und das ist auch gut so ;-)
Denn am Ende steht da: Ü
Im ersten Schritt wandelst Du das "Ü" in "Ü" um. Dann aber kommt die zweite Umwandlung, da wird aus dem "&" ein "&" und damit aus "Ü" ein "Ü". Das ist syntaktisch korrekt, deswegen meckert der Vali auch nicht. Und der Browser stellt es korrekt als Ü da.
Die Lösung für Dein Problem: Erst das "&" umwandeln, dann das "ü".
Ciao,
Harry