Pra mim funcionou com a definição da valor para o atributo acceptcharset do form. Assim:
<h:form id="form" acceptcharset="ISO-8859-1">
Pra mim funcionou com a definição da valor para o atributo acceptcharset do form. Assim:
<h:form id="form" acceptcharset="ISO-8859-1">
Valeu por compartilhar Evandro Canal, me ajudou aqui também.
Obrigado
[quote=llucas]Consegui resolver depois de muito tempo o problema que eu nem sei de onde veio ja que tudo funcionava normal e deu pane do nada -.-’
Além do encoding declarado no xml como ISO-8859-1 coloquei a tag f:view com contentType=“text/html; charset=ISO-8859-1”
Enfim o código no final ficou assim[code]<?xml version='1.0' encoding='ISO-8859-1' ?>
<f:view contentType="text/html; charset=ISO-8859-1">
<h:head>
<title>Facelet Title</title>
</h:head>
<h:body>
<h:form>
<h:outputText value="João" />
<h:inputText />
</h:form>
</h:body>
</f:view>
[/code][/quote]
Bah llucas. Matou a pau. To há uns quatro dias tentando resolver este problema. Muito obrigado cara.
Estou com o mesmo problema de acentuação com JSF, porém, as soluções dadas não resolveram o meu problema. Estou utilizando o primefaces.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:p="http://primefaces.prime.com.tr/ui">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=Edge" />
/* Restante do código */
novato25. Coloque a parte do Prime pra gente dar uma olhada. Tu tem no teu código a tag <f:view contentType=“text/html; charset=ISO-8859-1”>?
[code]<?xml version="1.0" encoding="UTF-8"?>
<f:view contentType=“text/html; charset=ISO-8859-1”>
<h:head>
<f:facet name=“first”>
</f:facet> [/code]
Troca <?xml version="1.0" encoding="UTF-8"?> por <?xml version='1.0' encoding='ISO-8859-1' ?>
se não resolver avisa aí. Abraço.
olá regisnv,
obrigado pela ajuda… não resolveu… parece que nada resolve… já estou há dois dias com este problema e nada.
Um detalhe… funciona no Firefox, mas no IE e no Chrome não. :?
Ah desculpa… vi só agora teu novo post. Estranho não funcionar em todos os proxys. Eu tiraria aquele <f:facet>, não? O que tu acha? Abraço.
Na verdade tiraria toda essa parte:
<f:facet name="first">
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
<meta http-equiv="X-UA-Compatible" content="IE=Edge"/>
</f:facet>
olá regisnv,
vi uma coisa estranha aqui na página. Como ela é composta, na metade dela encontrei outra tag html… sistema legado é complicado. Vou ver se é isto que causa o problema e ver se soluciono ele. Valeu…
olá regisnv,
resolvi o problema. Era o ajax. Coloquei o commandButton com o atributo ajax=false e funcionou… valeu!
Nossa, vivendo e aprendendo. Nunca imaginaria isso. Que bom que tu conseguiu cara. Abraço.
É… eu também não… mas por incrível que possa parecer, resolveu… já tinha tentado N maneiras de configuração de codificação e nada. Valeu!!
Pessoal, estou com o mesmo problema e todas as soluções não funcionaram. Estou usando Facelets
<?xml version='1.0' encoding='ISO-8859-1' ?><ui:composition xmlns=“http://www.w3.org/1999/xhtml”
xmlns:ui=“http://xmlns.jcp.org/jsf/facelets”
template="./Template.xhtml"
xmlns:h=“http://xmlns.jcp.org/jsf/html”
xmlns:p=“http://primefaces.org/ui”
xmlns:f=“http://xmlns.jcp.org/jsf/core”>
<ui:define name="content">
]
Estou usando primefaces
o estranho que na barra de menu tem acento e está normal.
Obrigado desde já
Vlw Evandro, só a inclusão na tag FORM já resolveu o meu problema.
Muito obrigado.
Se vc usar o padrao de openSessionInView faça isso
[code]public class FilterOpenSessionInView extends DelegatingFilterProxy implements Serializable {
private static final long serialVersionUID = 1L;
private static SessionFactory sf;
@Override
public void initFilterBean() throws ServletException {
sf = HibernateUtil.getSessionFactory();
}
@Override
public void doFilter(ServletRequest servletRequest,
ServletResponse servletResponse, FilterChain chain)
throws IOException, ServletException {
try {
servletRequest.setCharacterEncoding("ISO-8859-1"); //codificacao
sf.getCurrentSession().beginTransaction();
chain.doFilter(servletRequest, servletResponse);
sf.getCurrentSession().getTransaction().commit();
servletResponse.setCharacterEncoding("ISO-8859-1"); //codificacao
servletResponse.setContentType("text/html; charset=ISO-8859-1"); //codificacao
} catch (Exception e) {
e.printStackTrace();
if (sf.getCurrentSession().getTransaction().isActive()) {
sf.getCurrentSession().getTransaction().rollback();
}
} finally {
if (sf.getCurrentSession().isOpen()) {
if (sf.getCurrentSession().beginTransaction().isActive()) {
sf.getCurrentSession().clear();
}
sf.getCurrentSession().close();
}
}
}
}[/code]
Cara, pega o primeiro artefato de código que recebe a sua request (seja um filtro, um listiner, um servlet, não importa, desde que seja o primeiro a receber a request) e seta an request e na response o charset. Vai funcionar independente de navegador, servidor, S.O.
//tirar os caracteres estranhos das requisições e respostas
request.setCharacterEncoding(“UTF-8”);
response.setCharacterEncoding(“UTF-8”);
obs: veja se o banco está setado em UTF-8.