XML + PHP - Umlaute wie ä,ö richtig ausgeben?
shev
- php
Hi,
in meiner xml Datei kommen Umlaute wie ä vor.
Enkodierung:
<?xml version="1.0" encoding="ISO-8859-1"?>
Mozilla Firefox zeigt die Ä, ö und so weiter korrekt in der .xml Datei an.
Nutze ich simplexml_load_file() kann ich den Inhalt der .xml Datei holen
und anzeigen. Nur werden die Umlaute inkorrekt dargestellt.
Meine alte Lösung bestand darin, statt ä ae's in der .xml Datei zu verwenden,
und php das ganze wieder "zurück" verwandeln zu lassen.
Diese Lösung ist IMO schlecht, ich glaube es muss eine Lösung geben die:
- Speichern von Umlauten in .xml Dateien, und korrekter Wiedergabe
des Inhaltes mittels php->html.
Bin für jede Hilfe dankbar.
Hallo,
Speichern von Umlauten in .xml Dateien, und korrekter Wiedergabe
Verwende doch einfach utf8 als encoding. Ich verwende es bei meinen XHTML-Datein und habe keinerlei Probleme mit Umlauten.
Gruß,
Severin
Nutze ich simplexml_load_file() kann ich den Inhalt der .xml Datei holen
und anzeigen. Nur werden die Umlaute inkorrekt dargestellt.
Nein, sie werden nur in UTF-8 dargestellt. SAX- und DOM-Parser sowie die meisten proprietären XML-Parser wandeln den Eingabe-Text um nach UTF-8, einzige Ausnahme bildet hier <![CDATA[]]>. Das wird gemacht, um dem Programm eine Zeichensatz-unabhängige Schnittstelle zu bieten. Egal, welches Encoding die Eingabe-Datei hat, das, was im Programm ankommt ist dann [b]immer[/b] UTF-8.
- Speichern von Umlauten in .xml Dateien, und korrekter Wiedergabe
des Inhaltes mittels php->html.
Wandle den Output entweder nach Latin9 bzw. Latin1 um (je nach Geschmack) oder, wie Severin schon sagte, nutze UTF-8. Ich würde zu letzterer Lösung raten. UTF-8 ist einfach zukunftssicherer.
Ich würde gerne UTF-8 verwenden.
Verwende:
<?xml version="1.0" encoding="UTF-8" ?>
Drinnen test tags, eines davon hat ein ä
Firefox zeigt eine Art Quadrat mit einem Fragezeichen an anstatt ein
ä. Ich bin mir nicht sicher warum. Kann es auch am Editor liegen?
(Bluefish, Linux, Encoding auf UTF-8 festgelegt), oder gibt es in
der .xml Datei noch etwas hinzuzufügen?
Ich würde gerne UTF-8 verwenden.
Verwende:
<?xml version="1.0" encoding="UTF-8" ?>
Das steht jetzt in der XML-Datei oder was?
Drinnen test tags, eines davon hat ein ä
Firefox zeigt eine Art Quadrat mit einem Fragezeichen an anstatt ein
ä. Ich bin mir nicht sicher warum. Kann es auch am Editor liegen?
(Bluefish, Linux, Encoding auf UTF-8 festgelegt), oder gibt es in
der .xml Datei noch etwas hinzuzufügen?
Wenn es an den Browser gesendet wird, musst du noch den richtigen HTTP-Header schicken, also dem Browser sagen, welcher Charset das ist -- der Charset aus dem Header überwiegt nämlich den Charset aus der Datei. Da du ja PHP benutzt, kannst du das so machen: header("Content-Type: text/xml; charset=UTF-8");
bzw. halt text/html wenn du das XML nach HTML umwandelst.
"Das steht jetzt in der XML-Datei oder was?"
Yep.
Danke für die Hilfe!