AJAX com aecntuação não funciona no IE

6 respostas
marcioa1

Olá,

Meu Servlet gera um xml com um campo texto. Quando este campo texto possui acentuação, dá erro no IE, mas no FF roda beleza. Como tratar isto ?

Obrigado,

Márcio

6 Respostas

marcioa1

Meu Servlet

public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { String codigoProcedimento = request.getParameter("codigo"); response.setContentType("text/xml"); try { BdProcedimento bd = new BdProcedimento(); Procedimento umProcedimento = bd.busca(codigoProcedimento); String descricao = umProcedimento.getDescricao().replaceAll("/","\\/"); System.out.println(descricao); PrintWriter out = response.getWriter(); out.println("<descricao>"+descricao+"</descricao>"); out.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } }
O problema está no conteúdo da variável descricao, que não pode estar acentuada.
Será que ao definir o XML, eu não devo também definir algo mais ?

&lt?xml version="1.0"?&gt

Márcio

Márcio

M

Tente colocando o enconding

response.setHeader("Cache-Control", "no-cache");		
response.setContentType("text/xml");
response.getWriter().write("&lt?xml version=\"1.0\" encoding=\"ISO-8859-1\"?&gt");
marcioa1

Vitor e Mauro

A soluçaõ do Mauro resolveu :lol:

Ainda tenho muito a aprender.

Obrigado,

Márcio

otaviofcs

É, só vi agora, mas já tinha ralado muito nisso também. Quando precisei achei a informação aqui:

http://developer.mozilla.org/pt/docs/Acentua%C3%A7%C3%A3o_para_conte%C3%BAdos_carregados_por_AJAX

Mas o resumo é que o padrão default do ajax é utf-8 e o windows usa uma variação do iso-8859-1

Victor_Yuji_Maehira

Boa tarde!
Também passei por situação semelhante!
Vc pode postar parte do código?! Talvez eu possa ajudar!
É possível verificar se o request vem de um browser Mozilla, etc ou IE!
Parte do código:

if (window.XMLHttpRequest) { //alert('code for Mozilla'); xmlhttp=new XMLHttpRequest(); } // code for IE else if (window.ActiveXObject) { //alert('Internet Explorer'); xmlhttp=new ActiveXObject("MSXML2.XMLHTTP"); }

Victor_Yuji_Maehira

Marcio,
não quero me alongar, caso o problema não seja o mesmo que o meu, para não consumir seu tempo! No meu caso, acontece o inverso, funciona no IE mas não no FF!
Desculpa, não me expressei direito! O código que mandei anteriormente roda no cliente, é parte do javascript que chama minha servlet!
Espero que a solução do Mauro ajude!

Criado 26 de janeiro de 2007
Ultima resposta 26 de jan. de 2007
Respostas 6
Participantes 4