Это продолжение этого вопроса: Java-Джерси: получить параметр формы в виде байтового массива
Мне нужно, чтобы данные формы были отправлены в UTF-8, даже если для содержащей страницы используется ISO-8859-1 кодировка.Я нашел решение для FF, но не для IE.Вот и вся история:
Я использую веб-сервис Jersey REST для получения данных, отправленных с простого html .Когда на странице используется кодировка UTF-8, опубликованные данные также кодируются с использованием UTF-8, и все работает отлично.Но когда на странице используется кодировка ISO-8859-1, данные FORM также публикуются с использованием ISO-8859-1, и у Джерси возникают проблемы со специальными символами (возможно, потому, что он ожидает, что данные поступят в UTF-8).
Метод Джерси выглядит следующим образом:
@Path("/someMethod")
@POST
@Produces(MediaType.TEXT_HTML)
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
public String someMethod(@FormParam("someParam") String someParam)
{
...
}
Конечно, если я изменяю кодировку всей страницы на UTF-8, все работает нормально, проблема в том, что я динамически добавляю форму к существующим страницам, которые могут использовать другую кодировку (в других работах я не могу вмешаться в кодировку страницы).
У меня есть решение, которое работает для FF, но не для IE.Если я добавлю атрибут accept-charset="utf-8"
в FORM, который отправляет данные, FF правильно кодирует все опубликованные данные, используя utf-8, независимо от кодировки страницы, но это не работает в IE.
Есть идеи?Спасибо!