Problema com codificação

25 respostas
B

Pessoal, já pesquisei muito sobre o assunto e ainda ninguem conseguiu me explicar uma coisa que está acontecendo no meu sistema.
É o seguinte: tenho um banco postgres codificado em UTF-8, minhas páginas jsp estão com os comandos:
<%@ page language=“java” contentType=“text/html; charset=UTF-8” pageEncoding=“UTF-8”%> e

e todos meus códigos estão com UTF-8... O que esta acontecendo: os dados do banco (que cadastrei no meu sgbd e nao pela jsp) são mostrados na jsp perfeitamente, sem erros de codificação, porém, quando efetuo um cadastro, no form do meu jsp vem com codificação errada... o estranho de tudo isso é: a página está codificada certo, pois mostra os dados do banco corretamente, mas quando preencho um campo na minha table, vem com codifiação errada!!! uso a tag dentro da table.... Alguém tem idéia do que está acontecendo? pois já não sei mais onde configurar pra cadastrar certo!!! Obrigado!

25 Respostas

zoren

Qual a sua IDE??

se for o NetBeans, usa o http monitor para verificar o formato que os dados estão passando pelo POST/GET

isso geralmente é problema na codificação de caracteres do navegador

B

To usando eclipse, que tb está configurado para utf-8… struts 1 eu estou utilizando, os .xml e tld estão em utf-8 tb…

zoren

Mas a codificação do seu navegador (ie, firefox), está em UTF-8??

Geralmente eles ficam em ISO alguma coisa

B

Isso eu não verifiquei nao…nem sei onde verificar…vc sabe?

zoren

Geralmente ficam no menu Exibir e em codificação, ai lá tem um monte

B

já mudei, agora vou fazer o teste!

B

Nada feito! continuou dando erro na codificação! que coisa!! não tenho mais idéias pra resolver isso…

zoren

Você passa os parametros através do post ou do get??

B

eu utilizo o form do struts, passo via request… é isso que vc quer saber?

zoren

Tenta exibir os dados antes de eles serem gravados no banco

B

tipo essa action que faz um cadastro:

public ActionForward cadastraNoticia(ActionMapping mapping, ActionForm form,

HttpServletRequest request, HttpServletResponse response)

throws Exception {

HttpSession session = request.getSession();

String mapp = null;

try {

CadastrarNoticiaForm not = (CadastrarNoticiaForm)form;
mapp = "cadastrarNoticias";
		
		
	}catch (Exception e) {
		
	}
	return mapping.findForward(mapp);
}
B

eu já fiz o debug, nesta action aí de cima, os dados já vem errados do form da jsp… já mostra tudo errado aí na action q pego os campos do form…
credo, troço tosco! hehehee

zoren

Tenta isso antes de pegar a sessão

request.setCharacterEncoding("UTF-8");
B

blz, vou tentar agora!

B
fiz assim:

public ActionForward cadastraNoticia(ActionMapping mapping, ActionForm form,

HttpServletRequest request, HttpServletResponse response)

throws Exception {

HttpSession session = request.getSession();

String mapp = null;

try {

request.setCharacterEncoding(“UTF-8”);

CadastrarNoticiaForm not = (CadastrarNoticiaForm)form;
mapp = "cadastrarNoticias";
		
		
	}catch (Exception e) {
	}
	return mapping.findForward(mapp);
}

e nada!!! :frowning:

B

Eu já debuguei coisa por coisa, fucei tudo, tudo estava configurado pra utf-8, isso q eh estranho!!

B

Fazendo o debug novamente entrei em request – context – charsetMapper – map= properties ={fr=ISO-8859-1, en=ISO-8859-1}, vou verificar a classe do tomcat org.apache.catalina.util.CharsetMapper pra ver se tem algo a ser configurado…

zoren

e no seu ActionForm do Struts, existe algum método para setar a codificação?

B

acho q nao tem nao… bem, se tiver eu não sei…rsss

B

O tomcat precisa ser configurado tb? pq eu só vi o web.xml e está com codificação utf-8, fora isso nao fiz mais nada no tomcat…

zoren

Pelo que eu sei o Tomcat não precisa de configuração nenhuma quanto a codificação de caracteres

B

caraca, estou ficando sem opções pra mexer…

B

será q eh a codificação do meu windows?

B

Gente, nao sei se é pau, ou o que é… mas eu tirei o <%@ page language=“java” contentType=“text/html; charset=UTF-8” pageEncoding=“UTF-8”%> do topo da minha página jsp e funcionou!! que coisa estranha!! agora ficou só o

e deu certo...vamos ver né? eu heim...
B

Acabou q era cache, nada feito ainda…que coisa!!

Criado 10 de setembro de 2009
Ultima resposta 17 de set. de 2009
Respostas 25
Participantes 2