Как заставить контроллер Spring MVC работать с UTF-8? - PullRequest
12 голосов
/ 05 мая 2011

Я использую jQuery AJAX для отправки формы в контроллер Spring MVC в резервной копии.Я устанавливаю кодировку поверх jsp.В своих заголовках запросов в Firebug я вижу -

Accept-Charset  ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive          115
Connection          keep-alive
Content-Type    application/x-www-form-urlencoded; charset=UTF-8
X-Requested-With    XMLHttpRequest

Однако в моем контроллере Spring MVC все значения форм, введенные в кириллице, превращаются в ненужные.И поворот в том, что это прекрасно работает в Safari, но не в IE / FF / Chrome.

Есть мысли о том, как установить правильную кодировку и предотвратить отправку ненужных символов?

1 Ответ

27 голосов
/ 05 мая 2011

Я нашел решение этой проблемы. Я установил кодировку в верхней части каждой страницы JSP. Все же это не работало. Поэтому я добавил весенний фильтр кодировки символов в web.xml. Это обеспечит правильное кодирование в запросе.

<filter>
    <filter-name>encodingFilter</filter-name>
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
    <init-param>
        <param-name>encoding</param-name>
        <param-value>UTF-8</param-value>
    </init-param>
    <init-param>
        <param-name>forceEncoding</param-name>
        <param-value>true</param-value>
    </init-param>
 </filter>

 <filter-mapping>
    <filter-name>encodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
 </filter-mapping>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...