we have faced the same problem mostly i18n parts of
the web and app servers are not properly coded.
theoritically you most set the encoding of your html
request form to utf-8 (default is ascii) and this
should solve the problem but most of the web and app
servers I know don't support utf-8 encoded requests
properly and because of this we usually code and
decode unicode characters in our own code, with java
script in client side and java codes in server side.