UTF-8, кодирующий отправку формы сервлета с помощью Tomcat

Я пытаюсь опубликовать простую форму, которая включает символы Юникода в действие сервлета. На Jetty все работает без загвоздки. На сервере Tomcat символы utf-8 искажаются.

Самый простой случай, который у меня есть:

Форма:

<form action="action" method="post">
  <input type="text" name="data" value="It’s fine">`
</form>`

Действие:

class MyAction extends ActionSupport {   
  public void setData(String data) {
    // data is already mangled here in Tomcat
  } 
}
  • У меня есть URIEncoding = "UTF-8" на в server.xml
  • ​​Первый фильтр для действия вызывает request.setCharacterEncoding ("UTF-8");
  • Тип содержимого страницы, содержащей форму, - "text / html; charset = UTF-8"
  • Добавление " accept-charset "не имеет значения

Единственные два способа заставить его работать - это использовать Jetty или переключить его на method =" get ". В обоих случаях персонажи проходят без проблем.

8
задан Parker 5 December 2011 в 21:11
поделиться