This is continuation of this question: Java Jersey: Receive form parameter as byte array
I need form data to be posted in UTF-8 even if containing page uses ISO-8859-1 charset. I found a solution for FF, but not for IE. Here is the whole story:
I use Jersey REST web service to receive data posted from simple html <FORM>. When the page uses UTF-8 charset, posted data is also encoded using UTF-8 and everything works fine. But when the page uses ISO-8859-1 charset, FORM data is also posted using ISO-8859-1 and Jersey has trouble with special characters (probably because it expects data to come in UTF-8).
Jersey method looks like this:
@Path("/someMethod")
@POST
@Produces(MediaType.TEXT_HTML)
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
public String someMethod(@FormParam("someParam") String someParam)
{
...
}
Of course if I change the whole page encoding to UTF-8, everything works fine, the problem is that I add form dynamically to existing pages that may use different encoding (in other works I can't tamper with page encoding).
I have solution that works for FF but not for IE. If I add accept-charset="utf-8"
attribute to FORM that posts the data, FF correctly encodes all posted data using utf-8 regardless of containing page encoding, but this doesn't work in IE.
Any ideas? Thank you!