Du befindest Dich im Archiv vom ABAKUS Online Marketing Forum. Hier kannst Du Dich für das Forum mit den aktuellen Beiträgen registrieren.

Umlaute werden falsch dargestellt

Ajax, Hijax, Microformats, RDF, Markup, HTML, PHP, CSS, MySQL, htaccess, robots.txt, CGI, Java, Javascript usw.
Wirths Media
PostRank 9
PostRank 9
Beiträge: 2050
Registriert: 20.09.2004, 20:25

Beitrag von Wirths Media » 22.06.2006, 17:34

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

Anzeige von ABAKUS

von Anzeige von ABAKUS »

Content Erstellung von ABAKUS Internet Marketing
Ihre Vorteile:
  • einzigartige Texte
  • suchmaschinenoptimierte Inhalte
  • eine sinnvolle Content-Strategie
  • Beratung und Umsetzung
Jetzt anfragen: 0511 / 300325-0

haha
PostRank 9
PostRank 9
Beiträge: 1065
Registriert: 03.04.2006, 18:08
Wohnort: Bi Hamborg

Beitrag von haha » 22.06.2006, 18:01

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.

Wirths Media
PostRank 9
PostRank 9
Beiträge: 2050
Registriert: 20.09.2004, 20:25

Beitrag von Wirths Media » 22.06.2006, 18:16

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

Anzeige von ABAKUS

von Anzeige von ABAKUS »

SEO Consulting bei ABAKUS Internet Marketing
Erfahrung seit 2002
  • persönliche Betreuung
  • individuelle Beratung
  • kompetente Umsetzung

Jetzt anfragen: 0511 / 300325-0.


oldInternetUser
PostRank 9
PostRank 9
Beiträge: 1250
Registriert: 19.03.2005, 12:52

Beitrag von oldInternetUser » 22.06.2006, 18:39

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

Code: Alles auswählen

encoding="ISO-8859-1"
schreibe, dann ist das natürlich Quatsch. Dann muß ich schon den UTF-8 - String in einen 8-Bit-String umwandeln.

Wirths Media
PostRank 9
PostRank 9
Beiträge: 2050
Registriert: 20.09.2004, 20:25

Beitrag von Wirths Media » 22.06.2006, 18:43

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??

oldInternetUser
PostRank 9
PostRank 9
Beiträge: 1250
Registriert: 19.03.2005, 12:52

Beitrag von oldInternetUser » 22.06.2006, 18:54

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?

haha
PostRank 9
PostRank 9
Beiträge: 1065
Registriert: 03.04.2006, 18:08
Wohnort: Bi Hamborg

Beitrag von haha » 22.06.2006, 19:07

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.

Kristian
PostRank 9
PostRank 9
Beiträge: 1484
Registriert: 20.07.2005, 16:30

Beitrag von Kristian » 22.06.2006, 19:10

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

Wirths Media
PostRank 9
PostRank 9
Beiträge: 2050
Registriert: 20.09.2004, 20:25

Beitrag von Wirths Media » 22.06.2006, 19:10

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.

Kristian
PostRank 9
PostRank 9
Beiträge: 1484
Registriert: 20.07.2005, 16:30

Beitrag von Kristian » 22.06.2006, 19:13

Code: Alles auswählen

lynx -head -dump http&#58;//www.meine-domain.de

Wirths Media
PostRank 9
PostRank 9
Beiträge: 2050
Registriert: 20.09.2004, 20:25

Beitrag von Wirths Media » 22.06.2006, 19:15

Hier mal der Header vom Server...

Code: Alles auswählen

HTTP/1.1 200 OK
Date&#58; Thu, 22 Jun 2006 18&#58;01&#58;12 GMT
Server&#58; Apache/2.0.46 &#40;Red Hat&#41;
Connection&#58; close
Transfer-Encoding&#58; chunked
Content-Type&#58; text/xml;charset=ISO-8859-1
Kann es sein, dass die Verarbeitung danach es nicht mag?

Code: Alles auswählen

	preg_match&#40;"/<\?xml&#40;.*&#41;<\/RESPONSE>/Uis", $return, $return&#41;;


	$xml = simplexml_load_string&#40;$return&#91;"0"&#93;&#41;;
Ohne diese ist die Ausgabe scheinbar korrekt

Kristian
PostRank 9
PostRank 9
Beiträge: 1484
Registriert: 20.07.2005, 16:30

Beitrag von Kristian » 22.06.2006, 19:18

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

oldInternetUser
PostRank 9
PostRank 9
Beiträge: 1250
Registriert: 19.03.2005, 12:52

Beitrag von oldInternetUser » 22.06.2006, 19:22

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.
Zuletzt geändert von oldInternetUser am 22.06.2006, 19:25, insgesamt 1-mal geändert.

Kristian
PostRank 9
PostRank 9
Beiträge: 1484
Registriert: 20.07.2005, 16:30

Beitrag von Kristian » 22.06.2006, 19:22

Hallo

Jo,
https://www.php.net/simplexml_load_string

Die Funktion erwartet einen wohlgeformten (well-formed) XML-String als data Parameter...


Gruss Kristian

Wirths Media
PostRank 9
PostRank 9
Beiträge: 2050
Registriert: 20.09.2004, 20:25

Beitrag von Wirths Media » 22.06.2006, 19:30

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 :)

Antworten
  • Vergleichbare Themen
    Antworten
    Zugriffe
    Letzter Beitrag