daGizmo: AJAX: Problem mit Umlauten

Ich arbeite gerade an meiner ersten AJAX-Anwendung, und komme eigentlich gut voran... leider habe ich Probleme mit den Umlauten : (

Habe natürlich schon recherchiert, und soweit rausgefunden, das ich dazu mit der JavaScript-Funktion "escape() / unescape()" arbeiten muss. Was mir jedoch unklar ist, ist wie und wo ich diese escape()-Funktion anwenden muss?

In meinem Fall geht es um eine ganze ASP-Seite, die via AJAX angezeigt wird:

function loadDataFolders(subfolder) {

var xml_http = new XMLHttpRequest();
xml_http.open('GET','rechnungsarchiv_ordner.asp?subfolder='+subfolder, true);

xml_http.onreadystatechange = function() {
 if (xml_http.readyState == 1) {
  document.getElementById('loading').style.display = 'inline';
 }

if (xml_http.readyState == 4) {
  var ausgabe = xml_http.responseText;
  document.getElementById('ordner').innerHTML = ausgabe;
  document.getElementById('loading').style.display = 'none';
 }
}

xml_http.send(null);
}

Dieses Script ist noch nicht IE-Konform - wie gesagt, ist meine erste AJAX-Anwendung und dieses Script mehr ein Testscript. Mit dem Firefox funktioniert auch alles einwandfrei... bis auf die Umlaute.

Wie muss ich hier die escape()-Funktion anwenden, damit die Umlaute richtig angezeigt werden (und nicht dies komischen Fragezeichen)?

Schon mal danke für jeden Tipp!
Grüße aus Wien,
daGizmo

  1. Wie muss ich hier die escape()-Funktion anwenden, damit die Umlaute richtig angezeigt werden (und nicht dies komischen Fragezeichen)?

    Da muß man nix escapen oder so, AJAX spricht UTF-8, bei deiner Seite ist ISO-8859-1 angegeben. Außerdem sollten dioe Daten auch als UTF-8 bereitgestellt werden, das mußt du dir auch ansehen. Erst wenn alles UTF-8 ist, dann sollte es auch vernünftig dargestellt werden.

    JJ

    1. Hi!

      Da muß man nix escapen oder so, AJAX spricht UTF-8, bei deiner Seite ist ISO-8859-1 angegeben. Außerdem sollten dioe Daten auch als UTF-8 bereitgestellt werden, das mußt du dir auch ansehen. Erst wenn alles UTF-

      Right! Auch die ASP Seiten sollten UTF 8 sprechen. Sonst wird haarig, wenn mann Eingaben von der Seite in eine DB speichern will. Die Datenbank wird z.B. Umlaute falsch speichern. Das ist an sich noch kein  Problem, solange sie nur ueber ein Webfrontend benutzt wird. Gemein wirds beim Auslesen der Daten, wenn korrekte Zeichen in der DB stehen. Dann werden naemlich folgende Zeichen gefressen.

    2. Wie muss ich hier die escape()-Funktion anwenden, damit die Umlaute richtig angezeigt werden (und nicht dies komischen Fragezeichen)?
      Da muß man nix escapen oder so, AJAX spricht UTF-8, bei deiner Seite ist ISO-8859-1 angegeben. Außerdem sollten dioe Daten auch als UTF-8 bereitgestellt werden, das mußt du dir auch ansehen. Erst wenn alles UTF-8 ist, dann sollte es auch vernünftig dargestellt werden.

      JJ

      Alle Daten UTF-8-Konform zu machen, wäre sehr aufwändig, da sie aus einer Datenbank kommen, und die ist sehr umfangreich! Bin jetzt auf eine sehr einfach Lösung - speziell für ASP - gestoßen:

      Es reicht folgenden Code am Anfang der Seite anzubringen:
      <%@ CodePage=65001 %>
      <%  Response.CharSet = "UTF-8" %>

      Und schon ist das Problem gelöst! ; )

      Dennoch vielen Dank!