Tuesday 16 January 2018

internet explorer - How to make IE post FORM data in UTF-8?

This is continuation of this question: href="https://stackoverflow.com/questions/6282626/java-jersey-receive-form-parameter-as-byte-array">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

.
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!

No comments:

Post a Comment

php - file_get_contents shows unexpected output while reading a file

I want to output an inline jpg image as a base64 encoded string, however when I do this : $contents = file_get_contents($filename); print &q...