Как заставить IE публиковать данные FORM в UTF-8? - PullRequest
5 голосов
/ 09 июня 2011

Это продолжение этого вопроса: 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.

Есть идеи?Спасибо!

1 Ответ

3 голосов
/ 17 декабря 2011

Приложения Ruby on rails используют этот трюк: они добавляют в скрытое поле символ UTF-8, который не может быть приведен в ISO Latin 1. 1. 1001 *

Используемое поле:

<input name="utf8" type="hidden" value="&#x2713;" />

и заканчивается в параметрах запроса как

search?param1=foo&param2=bar&utf8=✓

Примечание к истории: до utf8=✓, Ruby на рельсах использовал причудливого снеговика, чтобы заставить UTF-8: http://intertwingly.net/blog/2010/07/29/Rails-and-Snowmen.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...