Я использую Spring 3 MVC и настроил форму для ввода ввода от пользователя.Эта форма включает текстовую область для описания String в моем модельном объекте Event.Мой соответствующий контроллер выглядит следующим образом:
@RequestMapping(value = "/admin/event/{eventId}/edit", method = RequestMethod.POST)
public String updateEvent(@ModelAttribute Event event) {
logger.info("updateEvent(): Event description: " + event.getDescription());
return "redirect:/admin/event/" + event.getId() + "/edit";
}
Всякий раз, когда я вводю символ '€' в поле описания формы и отправляю POST форму, в зарегистрированном описании появляется знак '?'вместо «€».
Я использую CharacterEncodingFilter перед моим DispatcherServlet, но это не решило проблему.Для справки, мой web.xml выглядит так:
<filter>
<filter-name>characterEncodingFilter</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>characterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<servlet>
<servlet-name>baseApp</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>baseApp</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
Есть мысли о том, как правильно запечатлеть символ €?
Обновление:
Я задавал похожий вопрос, ранее связанный с MySQL, но, как вы можете видеть из приведенной выше демонстрации, € преобразуется в a?без участия MySQL, то есть между формой POST и регистрацией описания события.Вот почему я снова задал вопрос ... кажется, что эта проблема изолирована от Spring.