Kalle_B: AJAX: Problem mit Umlauten

Hallöle,

ich habe eine HTML- Datei mit der Zeile
<meta http-equiv='content-type'     content='text/html;charset=ISO-8859-1'>

und einen Bereich, in den später etwas hineinkommt:
  <div id=anzeigeFeld>_</div>

Wenn ich nun per Ajax dort eine Adresse anzeige, erscheinen die Umlaute als ? (Fragezeichen), obwohl sie vom sendenden Programm unverändert aus der Datenbank übermittelt werden.

Das sendende Programm sendet keinen <head>, sondern eine nackte Tabelle, die dann in obigen div eingefügt wird. Wie kann ich dieser Tabelle sagen, dass sie in ISO-8859-1 angezeigt werden soll?

Habe das Problem erstmal umgangen, indem ich in &auml; usw. wandle.

Lieben Gruß, Kalle

  1. Ich grüsse den Cosmos,

    <meta http-equiv='content-type'     content='text/html;charset=ISO-8859-1'>

    Was wird im Header gesendet?

    Möge das "Self" mit euch sein

    --
    Neulich dachte ich mir, einmal S/M ausprobieren wäre eine tolle Erfahrung. Also hab ich Windows gebootet ...
  2. n'abend,

    Das sendende Programm sendet keinen <head>, sondern eine nackte Tabelle, die dann in obigen div eingefügt wird. Wie kann ich dieser Tabelle sagen, dass sie in ISO-8859-1 angezeigt werden soll?

    das Script, welches deine "nackte Tabelle" liefert, möchte gerne einen Content-Type-Header senden.

    weiterhin schönen abend...

    --
    Freundlich wie man war, hat man mir Großbuchstaben geschenkt.
    sh:( fo:# ch:# rl:| br:> n4:& ie:{ mo:} va:) de:] zu:} fl:( ss:? ls:[ js:|
    1. n'abend,

      das Script, welches deine "nackte Tabelle" liefert, möchte gerne einen Content-Type-Header senden.

      Wie sieht sowas aus? Eine Zeile wie
      Content-Type: text/html; charset="ISO-8859-1"

      würde doch wohl als Text angezeigt, oder? Da muss doch noch was drumrum ...

      Kalle

      1. n'abend,

        Wie sieht sowas aus? Eine Zeile wie
        Content-Type: text/html; charset="ISO-8859-1"

        wir sprechen von einem _Header_. Ich weiss nicht welche Sprache du einsetzt, in PHP gibts da header() für.

        weiterhin schönen abend...

        --
        Freundlich wie man war, hat man mir Großbuchstaben geschenkt.
        sh:( fo:# ch:# rl:| br:> n4:& ie:{ mo:} va:) de:] zu:} fl:( ss:? ls:[ js:|
      2. n'abend,

        das Script, welches deine "nackte Tabelle" liefert, möchte gerne einen Content-Type-Header senden.

        Wie sieht sowas aus? Eine Zeile wie
        Content-Type: text/html; charset="ISO-8859-1"

        würde doch wohl als Text angezeigt, oder? Da muss doch noch was drumrum ...

        Kalle

        Du musst unterscheiden, zwischen Dateiheader und Requestheader! Der hier gebrauchte Header ist ein Requestheader und wird nicht im Dokument dargestellt. Er sagt, wie das Dokument dargestellt werden soll. Ein HTML befindet sich auch in diesem Dokument. Wenn der Requestheader also falsch gesetzt ist, hilt dir dein Header im <head>-tag auch nichtsmehr.
        Wichtig beim Requestheader: Wenn du ihn per Hand schreibst, muss er durch zwei Leerzeichen vom Content getrennt werden.

        1. n'abend,

          Du musst unterscheiden, zwischen Dateiheader und Requestheader!

          RequestHeader: Browser -> Server
          ResponseHeader: Server -> Browser

          weiterhin schönen abend...

          --
          Freundlich wie man war, hat man mir Großbuchstaben geschenkt.
          sh:( fo:# ch:# rl:| br:> n4:& ie:{ mo:} va:) de:] zu:} fl:( ss:? ls:[ js:|
  3. hi Kalle,

    Stichwort uri_escape, mehr dazu hier:
    http://rolfrost.de/cgi-bin/xmlhttpreq.cgi

    Na, vielleicht hilfts Dir.

    Viele Grüße, Rolf

  4. echo $begrüßung;

    Wenn ich nun per Ajax dort eine Adresse anzeige, erscheinen die Umlaute als ? (Fragezeichen), obwohl sie vom sendenden Programm unverändert aus der Datenbank übermittelt werden.

    Die Kodierung "unverändert" gibt es nicht. Deine Daten sind, auch wenn dich das bisher nicht interessiert hat, in einer ganz bestimmten Kodierung in der Datenbank gespeichert. Aus der Art deines Problems nehme ich an, dass diese Kodierung auf den Namen ISO 8859-1 (oder Windows-1252) hört.

    AJAX - das X steht für XML. Die Standard-Kodierung von XML ist UTF-8. Sorge dafür, dass die übertragenen Daten UTF-8-kodiert sind oder bring dem AJAX, bzw. der von die verwendeten Bibliothek bei, dass deine Daten anders kodiert sind. Oftmals wird "Kodierung" auch mit "Zeichensatz" gleichgesetzt. Es besteht also die nicht geringe Chance, dass relavante Funktionen irgendwas mit "charset" im Namen haben.

    echo "$verabschiedung $name";