Solucionado (ver solução)
Solucionado
(ver solução)
7
respostas

codificar páginas jsp para UTF-8

Pessoal boa tarde. Estou com um problema nas minhas páginas JSP. Eu criei uma tabela onde busco do banco de dados algumas informações e minhas informações vem correta, com os dados acentuados. No momento que faço algumas alterações nesses dados e submeto o formulário via post para gravar os dados alterados, o jsp de retorno vem com as palavras acentuadas desconfigurada, não lendo o encoding UTF-8. Como eu posso resolver isso? Tem algum filtro que eu possa configurar?

Nos JSPs já tem as tags:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>

<meta http-equiv="Content-Type" content="text/html" charset=UTF-8>

No meu método tem o requestMapping configurado. 
@RequestMapping(method=RequestMethod.POST.....)
7 respostas

Olá Marco Aurélio !

As vezes a pagina jsp está com o Encoding era veja a propriedade da pagina. Se você estiver utilizando a IDE do Eclipse click com o botão direito no Jsp e vá em propriedades, creio que tem o encoding tente mudar para fazer um teste.

Um abraço, João.

Opa João.

Então, eu já havia olhado essas propriedades e o encoding já estava configurado como UTF-8.

obrigado.

Como esta o text file encoding do seu projeto?

Já aconteceu isso comigo e não era codificação. Clica no projeto e vá em propriedades -> Resouce

Se for Windows tem que estar cp1252.

O text file encoding estava setado para UTF-8. Alterei para cp1252 mas ainda continua codificando errado.

solução!

Usei o filtro abaixo e resolvi o problema, mas tive que criar o web.xml. Teria como criar esse filtro em código java? Onde eu registraria ele no spring?

<filter>
    <filter-name>encoding-filter</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>encoding-filter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>
@Bean
public StringHttpMessageConverter stringHttpMessageConverter() {
    return new StringHttpMessageConverter(Charset.forName("UTF-8"));
}

Já tinha tentado esse método, mas também não funcionou. De qualquer forma o web.xml me salvou. Valeu João, obrigado pela ajuda.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software