Estou testando uma aplicação com Spring MVC e, em uma das minhas views, possuo um menu dropdown, cujo objetivo é fornecer um nome que será utilizado no meu controlador para recuperar uma entidade do banco. Acontece que o valor retornado, quando acentuado, era atribuído à variável String sem a formatação adequada, ou seja, com aqueles caracteres estranhos. Meu Netbeans, graciosamente configurado para o encoding UTF-8, mostrava o conteúdo da String sem problema algum, o que piorou minha situação. O que me fez entender o problema foi um teste com o length da String, que me retornava um char a mais que o tamanho da palavra.
Foi procurando na Internet que encontrei uma pergunta, no StackOverflow, que envolvia essa questão. A solução foi direta, agradeço ao carinha que conseguiu resolver o pepino.
O que se deve fazer é, no web.xml do projeto, colocar o seguinte filtro:
<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>
E foi assim que deu certo. Como disse, não sei se isso afeta negativamente a performance, mas, para quem quer se livrar logo do problema e avançar em seu trabalho, aí está.
REFERÊNCIAS
http://stackoverflow.com/questions/5895844/how-to-make-spring-mvc-controller-work-with-utf-8
http://revolucao.etc.br/archives/charsets-e-encodings/
<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>
E foi assim que deu certo. Como disse, não sei se isso afeta negativamente a performance, mas, para quem quer se livrar logo do problema e avançar em seu trabalho, aí está.
REFERÊNCIAS
http://stackoverflow.com/questions/5895844/how-to-make-spring-mvc-controller-work-with-utf-8
http://revolucao.etc.br/archives/charsets-e-encodings/
Um comentário:
Muito bom, resolveu o problema.
Postar um comentário