Problemas com JSP+Servlets+PostgreSQL+UTF-8

3 respostas
khaoz

Buenas, vamos aos fatos:

SO: Ubuntu 8.04 (Encoding: pt_BR.UTF-8)
IDE: Nebeans 6.5rc2 (Encoding do editor: UTF-8)
O postgresql esta com a codificação do sistema (UTF-8) bem como a base de dados que eu criei.
Minhas páginas JSP começam com: <%@page contentType=“text/html;charset=UTF-8” pageEncoding=“UTF-8”%>
Tenho uma tag meta dentro do head assim: <meta http-equiv=“Content-Type” content=“text/html; charset=UTF-8”>
Adicionei o URIEncoding=“UTF-8” como parametro do Connector no server.xml do tomcat.

Tenho um form em um jsp quem envia um parâmeto nome e as vezes recebe acento, exemplo: Capitão

Já no request.getParameter(“nome”) ta vindo: Capito ( não consigo simular o caracter, mas são aqueles caracteres zoneados de troca de codificação)
e dessa forma esta indo zoneado para o banco.

O que mais é necessário fazer para a acentuação ficar correta ?

3 Respostas

G

cara eh o seguinte aqui tava acontecendu a mesma coisa dai eu mudei nas JSPs de utf-8 para iso-8859-1 e funcionou legal
espero ter ajudado.
abraço

<meta http-equiv="Content-type" content="text/html; charset=iso-8859-1" /> <meta http-equiv="Content-Language" content="pt-br" />

khaoz

Mas eu gostaria de manter o UTF-8. A noite eu vou testar aquele Content-Language que você tem no meta. Vou ter que ir eliminando possibildades.

khaoz

A unica forma de resolver foi aplicando um filtro mesmo.
Mantive todas as alterações que fiz em todas as tags e arquivos citados. Apenas criei o seguinte filtro:

package com.app.filter;

import java.io.IOException;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;


public class UTF8EncodingFilter implements javax.servlet.Filter {

    public void doFilter(ServletRequest request, ServletResponse response,
            FilterChain filterChain) throws IOException, ServletException {
        response.setCharacterEncoding("UTF-8");
        request.setCharacterEncoding("UTF-8");
        filterChain.doFilter(request, response);
    }

    public void init(FilterConfig filterConfig) throws ServletException { }
    public void destroy() { }
}

E no web xml:

&lt;filter&gt;
    &lt;filter-name&gt;charsetFilter&lt;/filter-name&gt;
    &lt;filter-class&gt;com.app.filter.UTF8EncodingFilter&lt;/filter-class&gt;
&lt;/filter&gt;

&lt;filter-mapping&gt;
    &lt;filter-name&gt;charsetFilter&lt;/filter-name&gt;
    &lt;url-pattern&gt;/*&lt;/url-pattern&gt;
&lt;/filter-mapping&gt;

Fonte

Criado 18 de novembro de 2008
Ultima resposta 19 de nov. de 2008
Respostas 3
Participantes 2