| Titel: | Ajax Zeichenkodierung ISO 8859-1 | |
| Beschreibung: | ISO 8859-1 Zeichensatz, anstatt UTF-8 Kodierung für Übertragung verwenden | |
| Kategorie: | Programmierung | |
| Unterkategorie | Ajax (Asynchron JavaScript and XML) | |
| Benötigtes Fachwissen: | Anfänger | |
| Artikel überarbeiten: | Ajax Zeichenkodierung ISO 8859-1 | |
AJAX und ISO 8859-1
Vor einiger Zeit wurde ich damit beauftragt eine Internetseite zu erstellen, welche Seitenteile "dynamisch" per AJAX nachlädt. Die Internetseite selber sollte in ISO 8859-1 Kodiert werden.
Als ich mit dem Prototypen soweit war, musste ich jedoch feststellen, dass ich Probleme mit den Umlauten bekam, den AJAX verwendet standardmäßig UTF-8.
Nach langem Suchen, bin ich immer wieder auf das Selbe Problem gestoßen:
* Viele haben Probleme damit,
* aber keine vernünftige interoperable Lösung auffindbar,
http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=ISO-8859-1');
http_request.setRequestHeader("encoding", "ISO-8859-1");
http_request.setRequestHeader("send-method", "application/x-www-form-urlencoded; charset=ISO-8859-1');
http_request.overrideMimeType('text/xml; charset=iso-8859-1')
Die Header in AJAX zu ändern, hat nicht wirklich - oder nur mit mäßigem Erfolg (für wenige Browser einsetzbar) funktioniert. Was somit keine akzeptable Lösung war. Also habe ich versuch die Header in der angeforderten Datei zu ändern...http_request.setRequestHeader("encoding", "ISO-8859-1");
http_request.setRequestHeader("send-method", "application/x-www-form-urlencoded; charset=ISO-8859-1');
http_request.overrideMimeType('text/xml; charset=iso-8859-1')
Lösung (PHP)
Um aus dem AJAX UTF-8 dilemma zu gelangen, sollte nicht versucht werden die Header in AJAX, - sonder die Header in der Datei zu ändern, welche von AJAX nachgeladen wird.
header("Content-Type: text/html; charset=ISO-8859-1"); header("Content-Transfer-Encoding: 8bit");