Stephan: Zeichensatz konvertieren

Hallo zusammen,
ich möchte aus einer MYSQL Datenbank Werte rausholen, und diese mit echo xml konform ausgeben. Ich weiß es gibt extra PHP Klassen die mir beim bauen einer XML Datei helfen könnten, der Umfang dessen was ich tun möchte ist aber so simpel das ich das als zu aufwendig empfinde (abgesehen davon das ich die Klassen nicht kenne und mich da erst reinarbeiten müsste).

Nun habe ich ein Problem mit den Zeichensätzen (...gut das ich davon auch wieder keine Ahnung habe).

Die Kollation der DB: latin1_swedish_ci
Die Ausgabe im Browser soll UTF-8 sein.

Der Kern meiner Ausgabe (wobei $content das ist was ich ausgeben möchte):

Header('Content-Type: text/xml; charset=UTF-8');
echo iconv("Latin1", "UTF-8", $content);

Nun bekomme ich im Browser die Fehlermeldung das mein XML nicht wohlgeformt sei. Er bleibt am Zeichen "&" hängen.

Was lässt sich tun?

Viele Grüße

Stephan

  1. Hi,

    Nun bekomme ich im Browser die Fehlermeldung das mein XML nicht wohlgeformt sei. Er bleibt am Zeichen "&" hängen.

    "&" ist in SGML - und folglich auch in XML und HTML - ein Sonderzeichen. Meinst Du es nicht in seiner Sonderbedeutung, *musst* Du es maskieren.

    Was lässt sich tun?

    Folge dem Grundsatz: Wenn Du einen Wert in einen Kontext bringst, musst Du ihn kontextspezifisch kodieren. Dann passiert sowas nicht.

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. Hi Cheatah,
      besten Dank für die schnell Antwort.
      htmlspecialchars hat geholfen ;-)

      Problem gelöst!