MiSo: AJAX / Umlaute?

Mir ist aufgefallen, dass der Rückgabewert wenn ich mit AJAX arbeite nie Umlaute enthält. Kann man irgendwas dagegen machen oder übergibt http_request.responseText generell keine?

mfg
Micha

  1. moin MiSo :)

    Mir ist aufgefallen, dass der Rückgabewert wenn ich mit AJAX arbeite nie Umlaute enthält. Kann man irgendwas dagegen machen oder übergibt http_request.responseText generell keine?

    Das liegt an deinem Encoding. Siehe die Problembeschreibung bei Wikipedia (besser könnt ich es nicht erklären).

    liebe Grüße aus Berlin
    lina-

    --
    Self-Code: ie:% fl:( br:^ va:) ls:/ fo:| rl:( ss:) de:] js:| mo:)
    1. öhm... ja... *heul*

      Danke, das hat weitergeholfen. Weisst du zufällig wo ich ne Liste finde mit Zeichen, die UTF-8 nicht kennt bzw. ne Zeichentabelle? Darf ja jetzt ne schöne replace - Funktion schreiben...

      mfg
      Micha

      1. moin MiSo :)

        Danke, das hat weitergeholfen. Weisst du zufällig wo ich ne Liste finde mit Zeichen, die UTF-8 nicht kennt bzw. ne Zeichentabelle? Darf ja jetzt ne schöne replace - Funktion schreiben...

        Diese Liste hilft mir oft weiter. Aber in den meisten Sprachen gibt es doch eine replace-Funktion.
        Ansonsten kannst du deine Umlaute doch auch HTML-Codiert übertragen lassen.
        Wahlweise kannst du auch die Codierung der HTML-Seite auf utf-8 stellen.

        liebe Grüße aus Berlin
        lina-

        --
        Self-Code: ie:% fl:( br:^ va:) ls:/ fo:| rl:( ss:) de:] js:| mo:)
      2. echo $begrüßung;

        Weisst du zufällig wo ich ne Liste finde mit Zeichen, die UTF-8 nicht kennt bzw. ne Zeichentabelle? Darf ja jetzt ne schöne replace - Funktion schreiben...

        Es gibt praktisch keine Zeichen, die nicht mit UTF-8 darstellbar sind. Sie sind nur anders kodiert als das von dir (höchstwahrscheinlich) verwendete ISO-8859-1. Unicode und die UTF-8-Kodierung wurden erfunden, weil die herkömmlichen Zeichensätze meist auf 128 oder 256 Zeichen beschränkt waren.

        Mögliche Auswege wären:

        • Bring deinem AJAX-Toolkit bei, ISO-8859-1-kodierte Daten zu senden und entgegenzunehmen.
        • Verwende ein AJAX-Toolkit, das ISO-8859-1-kodierte Daten senden und empfangen kann.
        • Steige generell um auf UTF-8.

        echo "$verabschiedung $name";

          • Bring deinem AJAX-Toolkit bei, ISO-8859-1-kodierte Daten zu senden und entgegenzunehmen.
          • Verwende ein AJAX-Toolkit, das ISO-8859-1-kodierte Daten senden und empfangen kann.

          Du hast meinen Verstand verfinstert. Leuchte hinein und erkläre!

          1. echo $begrüßung;

            • Bring deinem AJAX-Toolkit bei, ISO-8859-1-kodierte Daten zu senden und entgegenzunehmen.
            • Verwende ein AJAX-Toolkit, das ISO-8859-1-kodierte Daten senden und empfangen kann.

            Du hast meinen Verstand verfinstert. Leuchte hinein und erkläre!

            Soweit ich weiß, gibt keine Javascript-Funktion, die UTF-8 nach ISO-8859-1 oder zurück umwandelt - bzw. allgemein gesagt: von irgendeiner Kodierung in die Kodierung der Seite und umgekehrt.

            Wenn dein AJAX-Toolkit dir UTF-8-kodierte Daten sendet und solche erwartet, muss deine gesamte Seite ebenfalls die UTF-8-Kodierung verwenden, wenn es nicht zu Fehlinterpretationen der UTF-8-kodierten Daten durch den Browser kommen soll. Denn der denkt weiterhin, er bekäme ISO-8859-1-Kodiertes.
            Wenn du nicht generell auf UTF-8 umsteigen möchtest, musst du also deinem AJAX-Toolkit beibringen, die Daten gemäß ISO-8859-1 zu kodieren.

            echo "$verabschiedung $name";