У меня есть URIEncoding = "UTF-8" на <Connector>
в server.xml
Это относится только к запросам GET.
Первый фильтр в действии вызывает request.setCharacterEncoding("UTF-8");
Хорошо, это должно применяться к запросам POST. Вам нужно только убедиться, что если вы еще не позвонили getParameter()
, getReader()
, getInputStream()
или что-либо еще, что могло бы вызвать синтаксический анализ тела запроса до вызова setCharacterEncoding()
.
Тип содержимого страницы, содержащей форму: "text/html; charset=UTF-8"
Как точно вы его настраиваете? Если это сделано в <meta>
, то вы должны понимать, что это игнорируется браузером, когда страница обслуживается по HTTP и присутствует заголовок ответа HTTP Content-Type
. Средний веб-сервер уже устанавливает его по умолчанию. Тип контента <meta>
будет использоваться только в том случае, если страница сохранена на локальный диск и оттуда просмотрена.
Чтобы правильно установить кодировку заголовка ответа, добавьте в начало JSP следующее:
<%@page pageEncoding="UTF-8" %>
Это, кстати, также скажет серверу отправить ответ в данной кодировке.
Добавление "accept-charset" к форме не имеет значения
Это имеет значение только в MSIE, но даже тогда он использует его неправильно. В целом атрибут ничего не стоит. Забудь об этом.
Смотри также: