Seite 1 von 2
Umlaute werden falsch dargestellt
Verfasst: 22.06.2006, 17:34
von Wirths Media
Hallo,
leider werden die Umlaute falsch dargestellt.
Zeichensatz ist ISO-8859-1 sollte also eigentlich funktionieren.
Im Quellcode ist ä ö ü leider werden sie im Browser falsch dargestellt.
Wenn ich selbt öäü schreibe werden sie im Browser richig dargestellt.
Sei noch zu dagen, die Umlaute kommen von einer XML Schnittstelle ( auch ISO-8859-1)
Gruß
Daniel
Verfasst:
von
Content Erstellung von
ABAKUS Internet Marketing
Ihre Vorteile:
- einzigartige Texte
- suchmaschinenoptimierte Inhalte
- eine sinnvolle Content-Strategie
- Beratung und Umsetzung
Jetzt anfragen:
0511 / 300325-0
Re: Umlaute werden falsch dargestellt
Verfasst: 22.06.2006, 18:01
von haha
calusa-xx hat geschrieben:Zeichensatz ist ISO-8859-1 sollte also eigentlich funktionieren.
Nur, wenn die Umlaute mittels iso-8859-1 kodiert wurden. Was draufsteht, muss noch lange nicht drin sein.
Sei noch zu dagen, die Umlaute kommen von einer XML Schnittstelle ( auch ISO-8859-1)
Dann ist's vermutlich utf-8, nicht iso-8859-1.
Mehr lässt sich dazu ohne Beispiel, wie die Zeichen falsch dargestellt werden und wo Du wie den Zeichensatz definiert hat, nicht sagen.
Verfasst: 22.06.2006, 18:16
von Wirths Media
OK...
Die Seite hat im Header
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
Die XML Anfrage lautet
<?xml version="1.0" encoding="ISO-8859-1"?>
Die Antwort darauf...
<?xml version="1.0" encoding="ISO-8859-1"?>
also auch ISO-8859-1
Die Umlaute sehen so aus...
Neugründung
Gruß
Daniel
Verfasst:
von
SEO Consulting bei
ABAKUS Internet Marketing Erfahrung seit 2002
- persönliche Betreuung
- individuelle Beratung
- kompetente Umsetzung
Jetzt anfragen:
0511 / 300325-0.
Verfasst: 22.06.2006, 18:39
von oldInternetUser
calusa-xx hat geschrieben:Die Antwort darauf...
<?xml version="1.0" encoding="ISO-8859-1"?>
also auch ISO-8859-1
Die Umlaute sehen so aus...
Neugründung
Das Ergebnis ist UTF-8, das wird aufgrund des Headers falsch dargestellt. Sprich: Die Xml-Deklaration ist falsch. Wer schreibt die?
Wenn ich an den Anfang eines UTF-8 - Strings
schreibe, dann ist das natürlich Quatsch. Dann muß ich schon den UTF-8 - String in einen 8-Bit-String umwandeln.
Verfasst: 22.06.2006, 18:43
von Wirths Media
Dann muss wohl die verarbeitung der XML Schnittstelle falsch sein, die ich nutze??
Aber warum steht im Quelltext nen ganz normales ä ???
Dann musste die ausgabe doch richtig sein??
Verfasst: 22.06.2006, 18:54
von oldInternetUser
calusa-xx hat geschrieben:Aber warum steht im Quelltext nen ganz normales ä ???
Dann musste die ausgabe doch richtig sein??
Der Datenstrom beginnt mit einem BOM, Notepad (oder der sonstige verwendete Editor) liest das BOM und interpretiert den Datenstrom korrekt, also ist auch die Anzeige korrekt.
Zum Testen: Öffne die Seite mit edit.com und sieh nach, ob am Dateibeginn 3 unleserliche Zeichen stehen.
calusa-xx hat geschrieben:Dann muss wohl die verarbeitung der XML Schnittstelle falsch sein, die ich nutze??
Nee, Du verarbeitest sie falsch. Gib das Ergebnis als UTF-8 mit
Code: Alles auswählen
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
aus, dann müßte das stimmen.
Es ist aus der Entfernung unklar: Ist der gesendete Datenstrom inkonsistent (BOM + ISO), so daß sich diese Inkonsistenz durchzieht oder ist der Datenstrom konsistent (ISO) und wird das lokal als UTF-8 ausgegeben, aber mit dem falschen Header gesendet?
Verfasst: 22.06.2006, 19:07
von haha
oldInternetUser hat geschrieben:calusa-xx hat geschrieben:Dann muss wohl die verarbeitung der XML Schnittstelle falsch sein, die ich nutze??
Nee, Du verarbeitest sie falsch. Gib das Ergebnis als UTF-8 mit
Code: Alles auswählen
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
aus, dann müßte das stimmen.
Sehe ich zwar auch so, aber trotzdem stimmt bei seiner XML-Schnittstelle etwas nicht, wenn die mit <?xml version="1.0" encoding="ISO-8859-1"?> antwortet. Es kann natürlich auch noch die Datenquelle sein, die hinter dem XML-Kram steht.
Verfasst: 22.06.2006, 19:10
von Kristian
Hallo
Ich würde mir zur Sicherheit auch den header ansehen, den der Server ausgibt.
Wenn der Server UTF-8 sagt, kann in der Seite sauberes ISO-8859-1 stehen, die Anzeige ist dennoch "kaput".
Gruss Kristian
Verfasst: 22.06.2006, 19:10
von Wirths Media
Zum Testen: Öffne die Seite mit edit.com und sieh nach, ob am Dateibeginn 3 unleserliche Zeichen stehen.
Dort ist alles so, wie es sein soll, ausser die Umlaue
Sehe ich zwar auch so, aber trotzdem stimmt bei seiner XML-Schnittstelle etwas nicht, wenn die mit <?xml version="1.0" encoding="ISO-8859-1"?> antwortet. Es kann natürlich auch noch die Datenquelle sein, die hinter dem XML-Kram steht.
Denke aber auch, dass es die Schnittstelle ist.
Lt. Schnittstellenbeschreibung kommt immer dass zurück, was man sendet.
Verfasst: 22.06.2006, 19:13
von Kristian
Verfasst: 22.06.2006, 19:15
von Wirths Media
Hier mal der Header vom Server...
Code: Alles auswählen
HTTP/1.1 200 OK
Date: Thu, 22 Jun 2006 18:01:12 GMT
Server: Apache/2.0.46 (Red Hat)
Connection: close
Transfer-Encoding: chunked
Content-Type: text/xml;charset=ISO-8859-1
Kann es sein, dass die Verarbeitung danach es nicht mag?
Code: Alles auswählen
preg_match("/<\?xml(.*)<\/RESPONSE>/Uis", $return, $return);
$xml = simplexml_load_string($return["0"]);
Ohne diese ist die Ausgabe scheinbar korrekt
Verfasst: 22.06.2006, 19:18
von Kristian
Hallo
Von PHP habe ich ja keinen Plan aber der Standard bei XML ist UTF-8, ich halte es für sehr wahrscheinlich, dass die xml-Funktion das auch so sieht.
Gruß Kristian
Verfasst: 22.06.2006, 19:22
von oldInternetUser
calusa-xx hat geschrieben:
Zum Testen: Öffne die Seite mit edit.com und sieh nach, ob am Dateibeginn 3 unleserliche Zeichen stehen.
Dort ist alles so, wie es sein soll, ausser die Umlaue :(
Dann heißt das, daß zwar UTF-8 (deshalb die falschen Umlaute), aber kein BOM zurückgesandt wurde.
Der nachfolgende Parser liest dagegen ISO-8859-1, weil ihm das gesagt wird - also werden die zwei Byte für die Umlaute als zwei einzelne Byte eingelesen.
Sprich: Die Schnittstelle macht nicht das, was sie zu machen behauptet: Sie schickt UTF-8 ohne BOM zurück und qualifiziert das Ergebnis als ISO-8859-1.
Edit: Die Schnittstelle müßte einen ISO-8859-1 - Datenstrom zurücksenden, keinen UTF-8. Damit würden die Umlaute per 1-Byte codiert werden.
Verfasst: 22.06.2006, 19:22
von Kristian
Hallo
Jo,
https://www.php.net/simplexml_load_string
Die Funktion erwartet einen wohlgeformten (well-formed) XML-String als data Parameter...
Gruss Kristian
Verfasst: 22.06.2006, 19:30
von Wirths Media
Also...
Im Browser werden die Daten (ausgabe mir print_r) vor simplexml_load_string richtig dargestellt...
Danach leider nicht mehr...
Die Funktion erwartet einen wohlgeformten (well-formed) XML-String als data Parameter...
Ist komlett und wohlgeformt
