Sunday, 22. April 2007

Zeichenkodierung bei Formulardaten

Problemstellung: Die Daten eines Formulares, welches in eine ISO-8859-1 enkodierte Seite eingebettet ist, soll UTF-8 kodiert an eine (andere) URL gesendet werden.

Browser submitten in der Regel ihre Formulardaten stets in dem Encoding, in welchem die Seite gerendert wurde [quelle]. Mit dem Attribut accept-charset sollte man eigentlich das Encoding explizit angeben können, aber leider wird es vom IE nicht korrekt unterstützt. Der IE sendet nämlich das Formular nur dann in UTF-8, falls auch ein Sonderzeichen im Formular mit eingegeben wurde. Server-seitig kann man sich also nicht sicher sein, in welcher Kodierung die Daten übermittelt wurden.

Die IE-Entwickler haben aber seit dem IE 5 nun folgenden Workaround implementiert: Falls das Formular ein hidden-input-Feld namens _charset_ enthält, so wird dieses mit dem verwendeten Enkoding ausgefüllt an den Server mitgesendet.
<form action=".." method="POST" accept-charset="UTF-8">
  <input type="hidden" name="_charset_" value="" />
  ..
</form>
Nun muss man server-seitig dieses Hidden-Field abfragen, und entsprechend auf die mitgesandten Daten anwenden.

Das genaue IE-Verhalten lässt sich hier nachlesen: https://bugzilla.mozilla.org/show_bug.cgi?id=18643#c12

Der IE ist also noch immer für Überraschungen gut. Seufz.

Nachtrag: Die Servlet API stellt die Methode ServletRequest.setCharacterEncoding(String) zur Verfügung. Da man diese Methode aber aufrufen muss, bevor man den Request parsed, nützt einem das _charset_-Feld rein gar nichts, da man ja dieses auch nur aus den Request-Parametern auslesen kann.

Nachtrag 2: Wow, magic at work! Mein Beitrag erscheint automatisch unterhalb Sam Ruby's Artikel als Kommentar. Anscheinend nur durch den Referrer (oder Technorati?).

Nachtrag 3 (und die "Lösung" für die Problemstellung): Wie oben angemerkt wurde, sendet der IE nur in UTF-8 wenn ein entsprechendes Zeichen eingegeben wurde. Bzw wenn man client-seitig ein solches Zeichen einem Form-Feld einfügt. Auf diese Weise lässt sich der IE also doch noch dazu überreden, stets UTF-8 zu senden. Verrückt.
<form action=".." method="POST" accept-charset="UTF-8">
  <input type="hidden" name="dummyChar" value="&#9829;" />
  ..
</form>

Thursday, 19. April 2007

URLs in Ruby On Rails

Sehr interessant. Wenn man sich dieses PDF über 'RESTful Rails Development' durchliest, gewinnt man den Eindruck dass sich RoR gerade dorthin bewegt, wo sich Helma bereits seit Jahren aufhält.

Old school RoR: /stories/show/2

New school RoR (i.e. "RESTful" und "verschachtelt"): /projects/1/stories/2, /projects/1/stories/new

Monday, 16. April 2007

-

letztens, in einer dieser parallelwelten

Wednesday, 4. April 2007

urlaub - endlich

zwar nur fünf tage, aber besser als ein stein am schädel :-)

auch diesmal lass ich die leserschaft mit etwas pikantem zurück: und zwar mit Frank's Energy Girls. Alles waschechte österreicherische Dirndln.

Dass ich der hier aber noch nicht beim Helikopter Skiing in Kitzbühel über den Weg gelaufen bin, wundert mich echt. Schade eigentlich.

Frohe Ostern, blaue Eier.

Monday, 19. March 2007

Foto Kiste

Zeit mal wieder für ein bisschen Privates aus der Foto Kiste, sprich von meinemr Sony Ericsson Handy Kamera:

Ein Raum voller BIC-Kugelschreiber, irgendwo im vierten Bezirk.

Russische Werbung in Kitzbühel. Und das bei 10%iger Russenquote.

Zwei Kracherl. 

Schnee?

Schnee!

Friday, 16. March 2007

New Skin Features in Helma 1.6.0

Fantastische Neuigkeiten die sich da bereits gestern abend in den CVS Commit Logs abgezeichnet haben:
-> http://dev.helma.org/wiki/New+Skin+Features+in+Helma+1.6/
Author: <% this.creator.name | truncate max="10" | escape %>
Bzgl Filter-Library kann man sich hier schon mal Ideen holen:
* Smarty Modifiers
* Liquid Filters
* Freemarker Builtins

Wanted: Laptop

So, die Woche ist mir endgültig die Geduld mit meinem Laptop gerissen. Ich brauch will einen neuen Rechner. Empfehlungen?

Ich tendiere ja aus mir eigentlich unbekannten Gründen zu einem Lenovo. Die Macht des Marketins eben.

Vista wird mir jedenfalls nicht auf das Ding kommen. Eher bleib ich noch bei XP.

Update: Etwas teuer, aber schon mal ein heißer Kandidat: http://www.ba-computer.at/product_info.php?products_id=56665 Vielleicht lässt sich ja das Viste gegen 1GB extra noch tauschen :-)

Update 19.3.: Danke für die Tipps / Infos. Ich hab heut mal 2 GB extra RAM bestellt, und seh mal zu wie das Ding dann läuft. Ansonsten könnte ich mir noch Franz seinen Vorschlag zu Herzen nehmen, und mal zeitweise auf Ubuntu switchen um zu sehen, ob das Arbeiten dort schneller von statten geht. Vielleicht war ich ja doch etwas voreilig meinen ansonsten braven Rechner in die Pension zu schicken. Abgesehen davon hätte ich mich jedenfalls für einen T60 entschieden.

Search

 

About michi

michi Michi a.k.a. 'Michael Platzer' is one of the Knallgraus, a Vienna-based New Media Agency, that deals more and more with 'stuff' that is commonly termed as Social Software.

Meet my fellow bloggers at Planet Knallgrau.

my delicious

Recent Updates

My Gadgets

Credits

Knallgrau New Media Solutions - Web Agentur f�r neue Medien

powered by Antville powered by Helma


Creative Commons License

xml version of this page
xml version of this page (summary)

twoday.net AGB

Counter



berufliches
blogosphaerisches
privates
spassiges
sportliches
technisches
trauriges
Profil
Logout
Subscribe Weblog