Ruby 1.9.1, Rails 2.3.5 i kodowanie stringów w hashu params

Hej,

wszystkie stringi które dochodzą do kontrolerów w mojej aplikacji mają kodowanie 8-bitowego ASCII. Tak na prawdę to powinny być w takim kodowaniu w jaki precyzuje odpowiedni nagłówek HTTP.

Widzę że przynajmniej jeden forumowicz się z tym zetknął:
http://rack.lighthouseapp.com/projects/22435/tickets/48-rackutilsunescape-problems-in-ruby-191

Ale dobrego rozwiązania brak w dyskusji. Jak mogę zapewnić to że params jest w poprawnym kodowaniu bez robienia brzydkiego hacka który mi przejrzy wszystkie parametry i zmieni ich kodowanie?

Hubertowi już odpowiadałem, napiszę jeszcze dla reszty:
Niezawsze da się stwierdzić kodowanie znaków jakie przychodzą w żądaniu HTTP - czasem kodowanie jest podane w Content-Type (POST), ale często paramsy budowane są z URL-a (wtedy kodowania ustalić się nie da). Ogólnie ekipa Racka przyjęła założenie, że wszystko co przychodzi z zewnątrz należy traktować jako ASCII-8BIT, za ustawienie odpowiedniego kodowania powinna być odpowiedzialna sama aplikacja. Idąc tym tropem - powinniśmy w aplikacji przelecieć sobie po paramsach i ustawić kodowania znaków. Takie rozwiązanie nie jest zapewne zbyt wydajne, dlatego prędzej czy później powinna pojawić się odpowiednia opcja w Racku umożliwiająca ustawianie kodowania przy tworzeniu paramsów.

Jasne, dzięki. Na razie mam before_filter który mi konwertuje params.