Probleme mit UTF-8 und XML
Hallo,
ich habe Probleme mit der Darstellung von Umlauten via SimpleXML.
Die XML-Datei hole ich Remote und sie ist UTF-8 kodiert:
<?xml version="1.0" encoding="utf-8"?>
Mit simplexml_load_file öffne ich sie.
$xml = simplexml_load_file($filename);
Parse ich jedoch die XML-Tags und gebe Sie aus,
dann bekomme ich bei Umlauten sozusagen Buchstabensalat.
Muss ich die Remote-XML Datei auf eine bestimmte Weise öffnen um sie
UTF-8 kodiert zu erhalten?
Bye,
Martin
Re: Probleme mit UTF-8 und XML
Martin Pöpping wrote:
> ich habe Probleme mit der Darstellung von Umlauten via SimpleXML.
> Die XML-Datei hole ich Remote und sie ist UTF-8 kodiert:
>
> <?xml version="1.0" encoding="utf-8"?>
>
> Mit simplexml_load_file öffne ich sie.
>
> $xml = simplexml_load_file($filename);
>
> Parse ich jedoch die XML-Tags und gebe Sie aus,
> dann bekomme ich bei Umlauten sozusagen Buchstabensalat.
>
> Muss ich die Remote-XML Datei auf eine bestimmte Weise öffnen um sie
> UTF-8 kodiert zu erhalten?
Was macht dich denn so sicher das diese Datei auch UTF-8 codiert ist?
Und vor allem wird diese vom webserver auch als utf-8 ausgeliefert?
encoding="utf-8" heist in der Beziehung erstmal nix. Maximal das der
Ersteller der Meinung war utf-8 auszuliefern. Ob das so ist steht auf
nem ganz anderen Blatt.
MfG, Ulf
--
_,
_(_p> Ulf [Kado] Kadner
\<_)
^^
Re: Probleme mit UTF-8 und XML
Ulf Kadner schrieb:
>> ich habe Probleme mit der Darstellung von Umlauten via SimpleXML.
>> Die XML-Datei hole ich Remote und sie ist UTF-8 kodiert:
>>
>> <?xml version="1.0" encoding="utf-8"?>
>>
>> Mit simplexml_load_file öffne ich sie.
>>
>> $xml = simplexml_load_file($filename);
>>
>> Parse ich jedoch die XML-Tags und gebe Sie aus,
>> dann bekomme ich bei Umlauten sozusagen Buchstabensalat.
>>
>> Muss ich die Remote-XML Datei auf eine bestimmte Weise öffnen um sie
>> UTF-8 kodiert zu erhalten?
> Was macht dich denn so sicher das diese Datei auch UTF-8 codiert ist?
> Und vor allem wird diese vom webserver auch als utf-8 ausgeliefert?
> encoding="utf-8" heist in der Beziehung erstmal nix. Maximal das der
> Ersteller der Meinung war utf-8 auszuliefern. Ob das so ist steht auf
> nem ganz anderen Blatt.
Sicher bin ich da nicht.
Wie kann ich das denn prüfen bzw. was muss gemacht werden?
Ich würde ganz gerne Fehler meinerseits ausschließen,
bevor ich dem Content-Provider das Ding um die Ohren hauen muss.
Bye,
Martin
--
Error: No keyboard detected, press F1 to continue
Re: Probleme mit UTF-8 und XML
Martin Pöpping meinte:
>> Was macht dich denn so sicher das diese Datei auch UTF-8 codiert ist?
>> Und vor allem wird diese vom webserver auch als utf-8 ausgeliefert?
>> encoding="utf-8" heist in der Beziehung erstmal nix. Maximal das der
>> Ersteller der Meinung war utf-8 auszuliefern. Ob das so ist steht auf
>> nem ganz anderen Blatt.
>
> Sicher bin ich da nicht.
>
> Wie kann ich das denn prüfen bzw. was muss gemacht werden?
Den HTTP-Header der XML-Datei anschauen, was da als Encoding angegeben ist.
Gregor
--
http://www.gregorkofler.at ::: Landschafts- und Reisefotografie
http://www.licht-blick.at ::: Forum für Multivisionsvorträge
http://www.image2d.com ::: Bildagentur für den alpinen Raum
Re: Probleme mit UTF-8 und XML
Martin Pöpping wrote:
> Ulf Kadner schrieb:
>> Was macht dich denn so sicher das diese Datei auch UTF-8 codiert ist?
>
> Sicher bin ich da nicht.
Warum tust Du das dann?
> Wie kann ich das denn prüfen bzw. was muss gemacht werden?
Das hat nix mit PHP zu tun. Installier Dir in Firefox die Erweiterung
LiveHttpHeaders und lade im Firefox diese Datei. Dann siehst Du welche
Header von Server gesendet werden.
Sollte also einer der Header dieser o.ä. sein:
Content-Type: text/xml; charset=utf-8
> Ich würde ganz gerne Fehler meinerseits ausschließen,
Das kannst Du nicht. Du kannst diese nur je nach Wissen minimieren. ;-)
> bevor ich dem Content-Provider das Ding um die Ohren hauen muss.
Lern da doch lieber erst mal Wie was im Netz funktioniert.
MfG, Ulf
--
_,
_(_p> Ulf [Kado] Kadner
\<_)
^^
Re: Probleme mit UTF-8 und XML
Martin Pöpping schrieb:
> Hallo,
>
> ich habe Probleme mit der Darstellung von Umlauten via SimpleXML.
> Die XML-Datei hole ich Remote und sie ist UTF-8 kodiert:
>
> <?xml version=3D"1.0" encoding=3D"utf-8"?>
>
> Mit simplexml_load_file öffne ich sie.
>
> $xml =3D simplexml_load_file($filename);
>
> Parse ich jedoch die XML-Tags und gebe Sie aus,
> dann bekomme ich bei Umlauten sozusagen Buchstabensalat.
IMHO arbeitet SimpleXML intern generell nur mit UTF8 und auch die
Ausgabe erfolgt in UTf8. Du beachtest das bei deiner Ausgabe?
MfG
Joerg
--
TakeNet GmbH, Geschaeftsfuehrer Wolfgang Meier
97080 Wuerzburg Tel: +49 931 903-2243
Alfred-Nobel-Straße 20 Fax: +49 931 903-3025
HRB Wuerzburg 6940 http://www.takenet.de
Re: Probleme mit UTF-8 und XML
* Martin Pöpping wrote:
> Parse ich jedoch die XML-Tags und gebe Sie aus,
> dann bekomme ich bei Umlauten sozusagen Buchstabensalat.
Tags mit Umlauten? Das ist wohl nicht XML-konform.
<TÄST>Ein Test.</TÄST>
dürfte nicht valide sein.
G.
--
BM Computer-Services, Bergmannstr. 66, 10961 Berlin
Webdesign, Internet, Layout und Grafik
Tel.: 030/20649400, mobil 0175/7419517, Fax: 030/20649401
Web: http://www.bmservices.de, eMail: kontakt [at] bmservices.de
Re: Probleme mit UTF-8 und XML
Gerome Muent schrieb:
> Tags mit Umlauten? Das ist wohl nicht XML-konform.
> <TÄST>Ein Test.</TÄST>
> dürfte nicht valide sein.
Nein ich meine natürlich den Inhalt.
Die XML-Datei ist übrigens UTF-8 kodiert laut Header.
Hat also jemand eine Idee woran es noch liegen könnte?
--
Error: No keyboard detected, press F1 to continue
Re: Probleme mit UTF-8 und XML
Martin Pöpping schrieb:
> Die XML-Datei ist übrigens UTF-8 kodiert laut Header.
Laut Header. Aber ist sie auch wirklich UTF-8-kodiert? In den Header
kann man ja alles Mögliche reinschreiben.
Gruß. Claus
Re: Probleme mit UTF-8 und XML
Claus Reibenstein schrieb:
> Martin Pöpping schrieb:
>
>> Die XML-Datei ist übrigens UTF-8 kodiert laut Header.
>
> Laut Header. Aber ist sie auch wirklich UTF-8-kodiert? In den Header
> kann man ja alles Mögliche reinschreiben.
ich muss ja wirklich sagen, dass es mich gfreut, dass mal jemand anders
die utf-8 Thematik aufgreift. Es ist ja wirklich ein unerschöpfliches
Thema ;-)
Herzliche grüße
Werner
--
--------------------------------------------------
Dorothee & Werner Partner, 45699 Herten
http://www.sonoptikon.de
Re: Probleme mit UTF-8 und XML
Martin Pöpping wrote:
> Die XML-Datei ist übrigens UTF-8 kodiert laut Header.
Ja und was ist mit dem Http-Header? Warum checkst Dus den nicht mal
einfach? Ich geb Dir mal nen bischen Code um zu schauen was da kommt:
<?php
header('Content-Type: text/plain; charset=utf-8');
echo file_get_contents($remoteFile)
or die ("Error while reading remote file...");
exit;
?>
Wenn der Code der XML-Datei mit allen Inhalten korrekt codiert
dargestellt wird ist erst mal relativ sicher das der Inhalt UTF-8 ist.
Wenn nicht ist der gelieferte Dateiinhalt halt nicht in utf-8 kodiert.
mb_detect_encoding() ist wenn vorhanden auch hilfreich.
MfG, Ulf
--
_,
_(_p> Ulf [Kado] Kadner
\<_)
^^
Re: Probleme mit UTF-8 und XML
Hallo Martin,
> Muss ich die Remote-XML Datei auf eine bestimmte Weise öffnen um sie
> UTF-8 kodiert zu erhalten?
Nein. Es liegt wahrscheinlich daran, dass deine Umlaute nicht maskiert sind.
Sonderzeichen:
& -> &
' -> '
< -> <
> -> >
" -> "
Umlaute und ß:
Ä -> Ä
Ö -> Ö
Ü -> Ü
ä -> ä
ö -> ö
ü -> ü
ß -> ß
Beispiel:
"Müller & Schultheiß GmbH" wird zu "Müller & Schultheiß GmbH"
(Quelle: http://www.devtrain.de/artikel_296.aspx)
Beste Grüße
Andreas
Re: Probleme mit UTF-8 und XML
Andreas Baer schrieb:
> Ä -> Ä
> Ö -> Ö
> Ü -> Ü
> ä -> ä
> ö -> ö
> ü -> ü
> ß -> ß
Ä -> Ä
Ö -> Ö
Ü -> Ü
ä -> ä
ö -> ö
ü -> ü
ß -> ß
Ist intuitiv besser zu lesen als die Zahlencodes.
> "Müller & Schultheiß GmbH" wird zu "Müller & Schultheiß GmbH"
Müller & Schultheiß GmbH
> (Quelle: http://www.devtrain.de/artikel_296.aspx)
Quelle: SelfHTML.
Hat aber alles nichts mit PHP zu tun.
Gruß. Claus
Re: Probleme mit UTF-8 und XML
Claus Reibenstein schrieb:
>> Ä -> Ä
>> Ö -> Ö
[...]
> Ä -> Ä
> Ö -> Ö
[...]
> Ist intuitiv besser zu lesen als die Zahlencodes.
Hängt das nicht sehr stark von der verwendeten DTD ab?
Wenn ich http://www.w3.org/TR/xml/ richtig verstehe, sind ohne weitere
Zusätze (Entity-Definitionen in DTD) nur &, >, <, " zulässig.
Gruß,
Lars
Re: Probleme mit UTF-8 und XML
Andreas Baer wrote:
> Hallo Martin,
>
>> Muss ich die Remote-XML Datei auf eine bestimmte Weise öffnen um sie
>> UTF-8 kodiert zu erhalten?
>
> Nein. Es liegt wahrscheinlich daran, dass deine Umlaute nicht maskiert sind.
>
> Sonderzeichen:
> & -> &
> ' -> '
> < -> <
>> -> >
> " -> "
>
> Umlaute und ß:
>
> Ä -> Ä
> Ö -> Ö
> Ü -> Ü
> ä -> ä
> ö -> ö
> ü -> ü
> ß -> ß
>
> Beispiel:
> "Müller & Schultheiß GmbH" wird zu "Müller & Schultheiß GmbH"
>
> (Quelle: http://www.devtrain.de/artikel_296.aspx)
>
> Beste Grüße
> Andreas
--
_,
_(_p> Ulf [Kado] Kadner
\<_) Mitglied der Freizeitvögel? ;-)
^^
Re: Probleme mit UTF-8 und XML
Andreas Baer wrote:
>> Muss ich die Remote-XML Datei auf eine bestimmte Weise öffnen um sie
>> UTF-8 kodiert zu erhalten?
>
> Nein. Es liegt wahrscheinlich daran, dass deine Umlaute nicht maskiert sind.
Und wenn Sie nicht gestorben sind dann...
Märchenstunde ist hier nur wenn auch Interessierte vorhanden sind.
> Ä -> Ä
> Ö -> Ö
> Ü -> Ü
> ä -> ä
> ö -> ö
> ü -> ü
> ß -> ß
>
> Beispiel:
> "Müller & Schultheiß GmbH" wird zu "Müller & Schultheiß GmbH"
Und was hat das mit der Frage des OP zu tun? Du weist nicht was utf-8
ist. Schau mal in die Wikipedia...
--
_,
_(_p> Ulf [Kado] Kadner
\<_) Mitglied der Freizeitvögel? ;-)
^^
Re: Probleme mit UTF-8 und XML
Ulf Kadner schrieb:
> Andreas Baer wrote:
>
>>> Muss ich die Remote-XML Datei auf eine bestimmte Weise öffnen um sie
>>> UTF-8 kodiert zu erhalten?
>>
>> Nein. Es liegt wahrscheinlich daran, dass deine Umlaute nicht maskiert
>> sind.
>
> Und wenn Sie nicht gestorben sind dann...
> Märchenstunde ist hier nur wenn auch Interessierte vorhanden sind.
>
>> Ä -> Ä
>> Ö -> Ö
>> Ü -> Ü
>> ä -> ä
>> ö -> ö
>> ü -> ü
>> ß -> ß
>>
>> Beispiel:
>> "Müller & Schultheiß GmbH" wird zu "Müller & Schultheiß
>> GmbH"
>
> Und was hat das mit der Frage des OP zu tun? Du weist nicht was utf-8
> ist. Schau mal in die Wikipedia...
>
>
Ich habe nach der Umstellung auf utf-8 sämtliche Maskierungen entfernt.
Grüße
werner
--
--------------------------------------------------
Dorothee & Werner Partner, 45699 Herten
http://www.sonoptikon.de
Re: Probleme mit UTF-8 und XML
Lars Feyerabend schrieb:
> Claus Reibenstein schrieb:
>
>>> Ä -> Ä
>>> Ö -> Ö
> [...]
>> Ä -> Ä
>> Ö -> Ö
> [...]
>> Ist intuitiv besser zu lesen als die Zahlencodes.
>
> Hängt das nicht sehr stark von der verwendeten DTD ab?
Was? Dass es intuitiv besser zu lesen sei? :-)
Aber Du hast natürlich Recht. XML kennt von Haus aus keine HTML-Entities
bis auf diese 5:
> Wenn ich http://www.w3.org/TR/xml/ richtig verstehe, sind ohne weitere
> Zusätze (Entity-Definitionen in DTD) nur &, >, <, " zulässig.
Und '.
Nichtsdestotrotz kann man sich diese Handvoll Entities ja mal eben
schnell selber definieren :-)
Gruß. Claus
Re: Probleme mit UTF-8 und XML
Werner Partner schrieb:
> Ich habe nach der Umstellung auf utf-8 sämtliche Maskierungen entfernt.
Und danach wieviele Wochen damit zugebracht, alle Folgefehler zu
bereinigen? ;-)
SCNR. Claus
Re: Probleme mit UTF-8 und XML
Claus Reibenstein schrieb:
> Werner Partner schrieb:
>
>> Ich habe nach der Umstellung auf utf-8 sämtliche Maskierungen entfer=
nt.
>
> Und danach wieviele Wochen damit zugebracht, alle Folgefehler zu
> bereinigen? ;-)
>
> SCNR. Claus
hehehehe.... und die halbe Newsgroup beschaeftigt :)
Gruss
Joerg
--
TakeNet GmbH, Geschaeftsfuehrer Wolfgang Meier
97080 Wuerzburg Tel: +49 931 903-2243
Alfred-Nobel-Straße 20 Fax: +49 931 903-3025
HRB Wuerzburg 6940 http://www.takenet.de
Re: Probleme mit UTF-8 und XML
Andreas Baer schrieb:
> Hallo Martin,
>
>> Muss ich die Remote-XML Datei auf eine bestimmte Weise öffnen um sie
>> UTF-8 kodiert zu erhalten?
>
> Nein. Es liegt wahrscheinlich daran, dass deine Umlaute nicht maskiert sind.
Wieso sollte man das? Wenn im XML-Header das UTF-8 angegeben ist (was
übrigens überflüssig ist - fehlt die Angabe, ist es immer UTF-8), müssen
die Umlaute einfach als UTF-8 in der Datei vorliegen.
Die von Dir beschriebene Maskierung macht nur dann Sinn, wenn Du in
einem z.B. als ISO-8859-1 definierten XML zusätzliche Umlaute angeben
möchtest, die mit ISO-8859-1 nicht definierbar sind. Die
Nummern-Entitäten sind ja immer in Unicode.
Ich würde zum Test einfach mal die betreffende Datei herunterladen und
in einem Browser anschauen. Dazu empfehle ich ausnahmsweise den IE, da
er die Umlaute strikter anmeckert als der Firefox.
Michael
Re: Probleme mit UTF-8 und XML
Claus Reibenstein schrieb:
> Werner Partner schrieb:
>
>> Ich habe nach der Umstellung auf utf-8 sämtliche Maskierungen entfernt.
>
> Und danach wieviele Wochen damit zugebracht, alle Folgefehler zu
> bereinigen? ;-)
Nö *g*
GRüße
Werner
--
--------------------------------------------------
Dorothee & Werner Partner, 45699 Herten
http://www.sonoptikon.de
Re: Probleme mit UTF-8 und XML
Joerg Behrens schrieb:
> Claus Reibenstein schrieb:
>> Werner Partner schrieb:
>>
>>> Ich habe nach der Umstellung auf utf-8 sämtliche Maskierungen entfernt.
>>
>> Und danach wieviele Wochen damit zugebracht, alle Folgefehler zu
>> bereinigen? ;-)
>>
>> SCNR. Claus
>
>
> hehehehe.... und die halbe Newsgroup beschaeftigt :)
Möchte dazu bemerken, das war vorher <(--z !!!
Grüße
Werner
--
--------------------------------------------------
Dorothee & Werner Partner, 45699 Herten
http://www.sonoptikon.de
Re: Probleme mit UTF-8 und XML
Michael Vogel schrieb:
> Andreas Baer schrieb:
>> Hallo Martin,
>>
>>> Muss ich die Remote-XML Datei auf eine bestimmte Weise öffnen um sie
>>> UTF-8 kodiert zu erhalten?
>>
>> Nein. Es liegt wahrscheinlich daran, dass deine Umlaute nicht maskiert
>> sind.
>
> Wieso sollte man das? Wenn im XML-Header das UTF-8 angegeben ist (was
> übrigens überflüssig ist - fehlt die Angabe, ist es immer UTF-8), müssen
> die Umlaute einfach als UTF-8 in der Datei vorliegen.
>
> Die von Dir beschriebene Maskierung macht nur dann Sinn, wenn Du in
> einem z.B. als ISO-8859-1 definierten XML zusätzliche Umlaute angeben
> möchtest, die mit ISO-8859-1 nicht definierbar sind. Die
> Nummern-Entitäten sind ja immer in Unicode.
>
> Ich würde zum Test einfach mal die betreffende Datei herunterladen und
> in einem Browser anschauen. Dazu empfehle ich ausnahmsweise den IE, da
> er die Umlaute strikter anmeckert als der Firefox.
Endlich mal jemand, der mir recht gibt
Werner
--
--------------------------------------------------
Dorothee & Werner Partner, 45699 Herten
http://www.sonoptikon.de
Re: Probleme mit UTF-8 und XML
Hallo NG,
ich bin heute am Feiertag noch einmal dazu gekommen mich mit meinem
Problem zu beschäftigen. Es existiert leider immernoch :-(
Michael Vogel schrieb:
>>> Muss ich die Remote-XML Datei auf eine bestimmte Weise öffnen um sie
>>> UTF-8 kodiert zu erhalten?
> Ich würde zum Test einfach mal die betreffende Datei herunterladen und
> in einem Browser anschauen. Dazu empfehle ich ausnahmsweise den IE, da
> er die Umlaute strikter anmeckert als der Firefox.
Habe ich gemacht. Die Umlaute werden sowohl mit IE als auch mit FF
richtig dargestellt. Liegt es also doch an meinen PHP-Code?
Folgender Beispielcode gibt komischerweise auch nur "1" aus
und nicht die gesamte XML-Datei:
<?php
header('Content-Type: text/plain; charset=utf-8');
echo file_get_contents($remoteFile)
or die ("Error while reading remote file...");
exit;
?>
Bye,
Martin
Re: Probleme mit UTF-8 und XML
Hallo,
ich habe mein Problem jetzt gelöst.
Ein:
header("Content-Type: text/html; charset=utf-8");
am Anfang des Skriptes und die Sache war gelöst.
Bye,
Martin