molily: Problem mit Jquery/Ajax und Umlauten

Beitrag lesen

Aber es gibt einen Schönheitsfehler. input.html hat als charset ISO-8859-1. Das kann ich nicht ändern

Das ist kein Problem an sich. Du musst nur dafür sorgen, dass der Server diese Kodierung auch im HTTP-Header namens Content-Type durch den charset-Parameter übermittelt.

AJAX arbeitet aber mit UTF-8

Nein, nicht notwendig. Der Server kann dem Browser als Antwort auf einen XMLHttpRequest Daten in beliebigen Kodierungen senden. Nur wenn der Server nicht die verwendete Kodierung angibt, dann nimmt der Browser als Fallback UTF-8 an.

Ich habe schon gegoogelt und viele Diskussionen zu diesem Thema gefunden, aber keine einzige praktikable Lösung.

Es ist aber sehr einfach. Konfiguriere den Webserver so, dass er die Kodierung angibt. Bei Apache z.B. über AddCharset.

D.h. ich müsste es irgendwie hinbekommen, dass entweder

* $.get ISO-8859-1 zurückliefert
   oder

* die Umlaute in "data" wieder zurückwandeln.

JavaScript hat mit Kodierungen nichts zu tun. Das passiert auf einer Ebene »vor« JavaScript.

Wenn der Browser den String nicht gemäß UTF-8 dekodieren konnte, sind mit JavaScript-String an den fehlerhaften Stellen bloß Ersetzungszeichen (U+FFFD). Daraus kann man nichts sinnvolles mehr in JS machen.

Im IE schlägt der Ajax-Request bei meinen Tests einfach fehl. jQuery feuert dann den error-Handler. Ein Zugriff auf responseText ist nicht möglich.

Mathias