Ajax + Struts - Erro na conversão de caracteres

6 respostas
S

Fiz uma implementação do Ajax numa aplicação Struts.
A Action imprime um texto na saída.
Só que esse texto pode ou não conter acentos ou caracteres especiais.
Quando pego a resposta (responseText) no Javascript, o texto fica cheio de ? no lugar dos acentos e com isso altera o restante do layout da página.

Como posso corrigir este problema?

6 Respostas

L

Estou com o mesmo problema.

xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=iso-8859-1");

Coloquei isso no JS e não adiantou.

M

Estou com o mesmo problema.Algum de vcs conseguiu resolver?
Agradeço

diego_arruda

Tive o mesmo problema um dia desses.
Consegui resolver colocando o codigo abaixo no JS:

oHTTPRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

E no JSP, coloquei:

<%@ page contentType="text/html; charset=utf-8" %>

Ou seja, coloquei o charset para o padrão UTF-8.

J

Muda a forma como vc recebe os dados no servidor e nao tem nada a ver com a resposta.

O mais importante é charset tem varias opções dependo do que quer fazer com a retorna talvez é melhor usar codigós para caracteres especias…

[]´s

M

Infelizmente ainda não consegui resolver, nem com a dica do Diego Arruda.

Dá pra ver que o problema é por causa do Ajax, pq quando eu retiro a chamada feita através dele e chamo a Action do Struts normalmente, os acentos funcionam legal.

É no javascript do Ajax que algo está sendo corrompido. Por exemplo: debugando o js com “alert”, na entrada, antes de processar, se o parâmetro que escrevi foi “Letícia” eu vejo “Let%EDcia” (o que está correto, né?). Mas na saída, vejo “Let?cia”.

Estou usando a abordagem explicada nesse site:
http://today.java.net/pub/a/today/2005/10/27/sprinkle-ajax-magic-into-struts-webapp.html

Se alguém tiver alguma dica, será bem vinda.

J

bem não sei o q exatamente vc quer fazer…
receber resposta em xml em html…

continua brincando com charset tenta iso-8859-1 (latin characterset)

pode tentar antes de mandar de volta trocar por exemplo í para í

[]'s

Criado 17 de abril de 2006
Ultima resposta 19 de mai. de 2006
Respostas 6
Participantes 5