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
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
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 ?
<?xml version="1.0"?>
Márcio
Márcio
Tente colocando o enconding
response.setHeader("Cache-Control", "no-cache");
response.setContentType("text/xml");
response.getWriter().write("<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>");
Vitor e Mauro
A soluçaõ do Mauro resolveu :lol:
Ainda tenho muito a aprender.
Obrigado,
Márcio
É, 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
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");
}
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!