XML Encoding Problem - Druckversion +- MyBB.de Forum (https://www.mybb.de/forum) +-- Forum: Anpassungen (https://www.mybb.de/forum/forum-47.html) +--- Forum: Plugin-Diskussionen (https://www.mybb.de/forum/forum-38.html) +--- Thema: XML Encoding Problem (/thread-4508.html) |
XML Encoding Problem - poncho - 13.01.2007 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"?> Hat jemand eine Idee, was ich da machen könnte, damit es in allen Browsern verarbeitet werden kann? RE: XML Encoding Problem - poncho - 14.01.2007 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 Dank geht dabei an die einzige deutsche Postgres-Entwicklerin (zumindest sagt sie das ) |