Maschinendenk

Scriptaculous: Andere Character Encoding als UTF8 verwenden

1 Kommentar

Ich hatte bisher immer das Problem, dass ich gerne ein anderes Character Encoding als UTF8 für den Inplace Editor von Scriptaculous verwenden wollte. (z.B. ISO-8859-1)

Da sonst Formulardaten teilweise fehlerhaft encodiert wurden, bei der Übertragung durch den Inplace Editor.

Dummerweise sagt die Doku von Scriptaculous dazu:

  • The form data is sent encoded in UTF-8 regardless of the page encoding.

Das ist teilweise wirklich ziemlich ärgerlich.

Nach längerem Suchen habe ich diesen Post gefunden, der eine Lösung aufzeigt:

  • In Prototype.js alle 3 Aufrufe von encodeUriComponent() mit escape() ersetzen.
  • Beim Serverseitigen Output des Inhalts für das Textfeld, ist darauf zu achten diese (z.B.) mit htmlentities() entsprechend zu konvertieren - da sonst der Inplace Editor beim Laden des Feldinhalts “hängt”

Dieser Einfache “Hack” ermöglicht es dann also, auch Character Encodings zu nutzen - an welche die Autoren von Scriptaculous nicht gedacht hatten.

Ich denke, ich bin nicht der einzige mit diesem Problem :)


Geschrieben von Philipp

10. Februar 2006 um 2:17

Veröffentlicht in Ajax Frameworks, Javascript

1 Kommentar zu 'Scriptaculous: Andere Character Encoding als UTF8 verwenden'

Kommentare abonnieren mit RSS oder TrackBack zu 'Scriptaculous: Andere Character Encoding als UTF8 verwenden'.

  1. Da dein Beispiel bei mir nicht Funktioniert hat habe ich eine andere Lösung für mich gefunden, die der ein oder andere vielleicht auch gebrauchen kann.
    [code lang = "php"]
    $text = ‘ÜüÄäÖö’
    $text = preg_replace(’/[^\x09\x0A\x0D\x20-\x7F]/e’, ‘”&#”.ord($0).”;”‘, $text);
    [/code]
    Wenn man dann den Text übergibt muss man nur noch unescapeHTML() aufrufen und alle Zeichen werden richtig dargestellt, z.B.

    [code lang = "html4"]
    var titel = document.createElement(”h3″);
    var textVar = document.createTextNode(obj.text.unescapeHTML());
    titel.appendChild(textVar);
    [/code]

    Gruß mo

    mo`

    22 Feb 07 um 8:42

Kommentar schreiben

Sie müssen eingeloggt sein um einen Kommentar zu verfassen.