encoding problems (i think utf-8 problems)

i have problems with umlauts (äüö) sent from an observer to my controller. i dont exactely know what my controller receives. using rails 1.1.6 on Win XP

the text field is observed with this Observer:

<%= observe_field 'suche', :frequency => 2,          :update => 'angebote',          :before => "Element.show('snake_spinner')",          :complete => "Element.hide('snake_spinner')",          :url => {:action => 'suche_angebote'},          :with => " 'query='+ encodeURIComponent($('suche').value)" %>

everything works fine. but if i enter umlauts into my field 'suche', i get strange values passed to my controller. so, if i type in: ö in my controller i'll receive the following as param: "query"=>"\303\266"

is this du the lack of utf-8 support in ruby/rails or what is happening here? or a js problem? saving and displaying umlauts in/from the database works without any problems.

in application.rhtml: <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />

headers from the observer POST: Host localhost:3000 User-Agent Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.8.1.2) Gecko/20070219 Firefox/2.0.0.2 Accept text/javascript, text/html, application/xml, text/xml, */* Accept-Language de-de,de;q=0.8,en-us;q=0.5,en;q=0.3 Accept-Encoding gzip,deflate Accept-Charset ISO-8859-1,utf-8;q=0.7,*;q=0.7 Keep-Alive 300 Connection keep-alive X-Requested-With XMLHttpRequest X-Prototype-Version 1.5.0 Content-Type application/x-www-form-urlencoded; charset=UTF-8 Referer http://localhost:3000/dokument/list Content-Length 9 Cookie _session_id=14fde434003ce9fa32f57af64c8a6af2 Pragma no-cache Cache-Control no-cache

no one?

so, if i type in: ? in my controller i'll receive the following as param: "query"=>"\303\266"

puts "\303\266"

ö

Looks right to me (assuming that the character you pasted in your post (?) is the umlaut-o)... if you use String#inspect (which is likely what Rails' log output uses) on a string, non-ascii chars will be shown as octal escapes. In this case, "\303\266" happens to be the utf-8 representation of codepoint 0xf6, "LATIN SMALL LETTER O WITH DIAERESIS".

saving and displaying umlauts in/from the database works without any problems.

So where's the issue?