Sven Rautenberg: AJAX / Problem mit Strings in einer Textarea (Sonderzeichen u.ä)

Beitrag lesen

Moin!

ich lade alle 2 Sekunden via AJAX diverse Servermeldungen herunter und zeige sie in einer Textarea an. Serverseitig rufe ich ein PHP Script auf und lasse mir alle aktuellen Meldungen (z.B. "Aktualisiere DB... ", "L&ouml;sche User ..." usw.) aus einem Array zurückgeben. In diesem Script verkette ich stumpf alle aktuellen Meldungen mit <br> oder /n, sodaß ich auf dem Client die einzelnen Meldungen in jeweils einer neuen Zeile angezeigt bekomme. Nur leider klappt das nicht. In der Textarea werden weder Umlaute noch Zeilenumbrüche dargestellt. Die Zeichenkette die in PHP z.B. wie folgt erstellt wurde :
"Aktualisiere DB... "<br>/n"L&ouml;sche User ..."
wird in der Textarea GENAUSO dargestellt :(

Du hast zwei Probleme.

1. Textareas zeigen NIE irgendwelche HTML-Tags an, auch kein <br>. Alle dort hineingegebenen HTML-Tags werden immer als Quelltext angezeigt.

Lösung: Wenn du Zeilenumbrüche haben willst, nimm Newlines.

2. Mit dem AJAX-Request findet keine Umcodierung von Entities in echtes Zeichen statt. Dein Javascript empfängt die Zeichen "&, o, u, m, l, ;", packt die in die Textarea, und die werden dort dann dargestellt. Nirgends findet eine automatische Wandlung in das "ö" statt, weil das in Javascript nicht vorgesehen ist.

Lösung: Wenn du Umlaute haben willst, nutze keine Entities, sondern das Zeichen direkt in der angegebenen Codierungsform, die dein AJAX versteht. Das kann dich unter Umständen dazu zwingen, UTF-8 zu benutzen.

- Sven Rautenberg