Erro na exibicao de uma msg (caracteres malucos) [AJUDA]

13 respostas
rollei

Pessoal dentro de um servlet estou dando um sendRedirect para uma pagina html

response.sendRedirect(request.getContextPath() + "/jsp/error.jsp?msg=Dados não encontrados.");
aqui o codigo da pagina:
<%@ page contentType="text/html"%>
<%@ page pageEncoding="UTF-8"%>

<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<%@ taglib uri="http://richfaces.org/a4j" prefix="a4j"%>
<%@ taglib uri="http://richfaces.org/rich" prefix="rich"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">


<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
        <title>SDP - Página de erro</title>
        
        <link href="/sdp/css/default.css" type="text/css" rel="stylesheet" />
        <%System.out.println(request.getParameter("msg"));%>
    </head>
    <body>
        <center>
            <img src="/sdp/imagens/imagem.jpg">
            <br />
            <br />
            <br />
            <p><b>Teste</b></p>	
            <br />
            <p style="color:red"><%=request.getParameter("msg")%></p>
        </center>
    </body>
</html>

soh que a mensagem de erro não esta exibindo corretamente as acentuacoes etc ... esta exibindo assim:
Dados n�o encontrados.

Alguem pode me dizer qual seria o problema?

Estou usando Netbeans 6.1, tomcat 6.0.16

13 Respostas

Anderson_Schmidt

Olá,

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
Troque esse charset para ISO-8859-1 e tente novamente.

Flws!

rollei

eu ja tinha tentado trocar

<%@ page pageEncoding="UTF-8"%>

e esse

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

por ISO-8859-1

Ele soh muda o tipo de interrogacao

com UTF-8: Dados n�o encontrados

com iso: Dados do n?o encontrados.

gigicantador
Eu faria algo do tipo;
String msg="Dados não encontrados";
request.setAttribute( "mensagem", msg);
response.sendRedirect(request.getContextPath() + "/jsp/error.jsp");
e depois
&lt;%@ page contentType="text/html"%&gt;  
 &lt;%@ page pageEncoding="UTF-8"%&gt;  
   
 &lt;%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%&gt;  
 &lt;%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%&gt;  
 &lt;%@ taglib uri="http://richfaces.org/a4j" prefix="a4j"%&gt;  
 &lt;%@ taglib uri="http://richfaces.org/rich" prefix="rich"%&gt;  
   
 &lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"  
 "http://www.w3.org/TR/html4/loose.dtd"&gt;  

&lt;%
    String mensagem = (String) request.getAttribute("mensagem");    

%&gt;
   

 &lt;html&gt;  
     &lt;head&gt;  
         &lt;meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /&gt;  
         &lt;title&gt;SDP - Página de erro&lt;/title&gt;  
           
         &lt;link href="/sdp/css/default.css" type="text/css" rel="stylesheet" /&gt;  
         &lt;%System.out.println(request.getParameter("msg"));%&gt;  
     &lt;/head&gt;  
     &lt;body&gt;  
         &lt;center&gt;  
             <img >  
             <br />  
             <br />  
             <br />  
             <p><b>Teste</b></p>   
             <br />  
             <p >&lt;%=out.print(mensagem);%&gt;</p>  
         &lt;/center&gt;  
     &lt;/body&gt;  
&lt;/html&gt;
rollei

cara tentei fazer desse jeito que voce botou ae

ele esta imprimindo nulo.

no servlet

String msg = "Dados não encontrados."; request.setAttribute("mensagem", msg); response.sendRedirect(request.getContextPath() + "/jsp/error.jsp");

na pagina (teste):

<% String mensagem = (String) request.getAttribute("mensagem"); System.out.println(mensagem); %>

ta saindo null no console

tentei tambem fazer na pagina assim

<% String mensagem = request.getParameter("mensagem"); System.out.println(mensagem); %>

gigicantador

O código request.getAtribute(…) deve estar na página error.jsp

F

Uma boa maneirqa de corrigir seria voce codificar a acentuação do html e manter o formato UTF-8.

T+

fbmanhani

Tente substituir o ‘ã’ por isso ‘ã’ e veja se dá certo.

[]'s

rollei

testei na pagina de erro mesmo, para dar um sistem.out

rollei

fbmanhani:
Tente substituir o ‘ã’ por isso ‘ã’ e veja se dá certo.

[]'s

quando eu coloco &#227

ele simplesmente nao escreve nada depois do codigo a msg vem assim

“Dados n”

fbmanhani

Na verdade eu tinha colocado um código… o html substituiu … :?

era assim: ‘& # 2 2 7 ;’

sem os espaços…

rollei

fbmanhani:
Na verdade eu tinha colocado um código… o html substituiu … :?

era assim: ‘& # 2 2 7 ;’

sem os espaços…

eu botei o codigo mesmo

rollei

Dando aquele up :stuck_out_tongue: … rapaz … por enquanto vou tentar usar frases sem acentuacao … tipo “Favor, efetuar login” :DD

e as frases que nao der, vou deixar sem acento mesmo, se alguem poder me dar uma luz eu agradeco

Fer

hehehe… esquece…

Criado 8 de outubro de 2008
Ultima resposta 13 de out. de 2008
Respostas 13
Participantes 6