Hallo, Gast! (Registrieren)

Letzte Ankündigung: MyBB 1.8.38 veröffentlicht (30.04.24)


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste
XML Encoding Problem
#1
Hallo Leute,

ich arbeite grad an einer Mitglieder-Karte für das MyBB.
das ganze läuft größtenteils über AJAX und dabei habe ich nun das Problem, dass der IE meine XML-Rückgabe nicht mag, weil ein falsches Zeichen drin wäre (an der Stelle steht z.B. ein "ö").

Die Daten in der XML-Rückgabe kommen aus einer Datenbank, wo sie als UTF-8 gespeichert sind. Im XML-Dokument ist auch UTF-8 gesetzt.
Das seltsame dabei ist nun, dass im Browser nur dann das richtige angezeigt wird, wenn man als HTTP-Header "Content-Type: ISO-8859-1" setzt. Das funktioniert auch im Opera und Firefox ganz wunderbar. Der IE meckert nun aber und kann wegen den Sonderzeichen das Dokument nicht verarbeiten.
Ich hab nun schon verschiedene Kombinationn ausprobiert aber nur auf diese Weise bekomme ich alles richtig angezeigt (bzw. im IE gar nicht).
Wenn ich im HTTP-Header und im XML-Dokument UTF-8 eintrage, werden Sonderzeichen falsch angezeigt. Und wenn ich alles auf ISO-8859-1 stelle und die Strings mit utf8_decode() bzw. iconv() nach ISO-8859-1 wandeln will, werden die Strings immer bei SOnderzeichen abgehackt.

Ihr könnt euch das ganze hier anschauen (einloggen mit test/test):
http://osor.de/top/membermap.php

Eine Suchanfrage nach der Stadt Luckau bringt z.B. das:
Code:
<?xml version="1.0" encoding="utf-8"?>
<results>
  <result>
    <id>20412</id>
    <name>Luckau</name>
    <trace0>Deutschland</trace0>
    <trace1>Niedersachsen</trace1>
    <trace2>Landkreis Lüchow-Dannenberg</trace2>
  </result>
  <result>
    <id>20413</id>
    <name>Luckau</name>
    <trace0>Deutschland</trace0>
    <trace1>Brandenburg</trace1>
    <trace2>Landkreis Dahme-Spreewald</trace2>
  </result>
</results>
...so wird es in Opera und im FF richtig verarbeitet aber im IE kommt ein Fehler.

Hat jemand eine Idee, was ich da machen könnte, damit es in allen Browsern verarbeitet werden kann?
Dieser Satz ist falsch!
Zitieren
#2
Nach langem rumprobieren hab ich es nun hinbekommen.
Ich hab bemerkt, dass bei MySQL als Zeichensatz latin1 eingestellt war. Nun setze ich am Anfang mit "SET NAMES 'utf8'" das MySQL-Encoding auf UTF-8 und damit klappt es dann mit allen Browsern. Nun kommt auch im HTTP-Header kein ISO mehr rein, sondern UTF-8.
Die ISO-Daten vom Forum konvertiere ich noch mit "CONVERT(u.username USING utf8)" und dann passt das Smile

Dank geht dabei an die einzige deutsche Postgres-Entwicklerin (zumindest sagt sie das Toungue)
Dieser Satz ist falsch!
Zitieren


Möglicherweise verwandte Themen…
Thema Verfasser Antworten Ansichten Letzter Beitrag
  XML Error sonic1978 2 1.750 16.03.2012, 20:46
Letzter Beitrag: sonic1978
  XML-Sitemap für Google - MyBB-Erweiterung juergenhold 3 3.836 08.02.2011, 17:10
Letzter Beitrag: querschlaeger
  Google Seo - SiteMap XML Error RhymeFront 31 10.841 11.06.2009, 12:54
Letzter Beitrag: Lambert
  XML-Sitemap für google Ulrich 5 3.638 18.09.2008, 15:29
Letzter Beitrag: StefanT