Problemas de Encode no Netbeans

977 views
Skip to first unread message

Daniel Lima

unread,
Aug 28, 2013, 5:25:18 PM8/28/13
to jav...@googlegroups.com
Fala galera, esse é meu primeiro post aqui....
Estou iniciando no Java Web....venho lá do J2ME e Android mais recentemente....agora estou me aventurando no desenvolvimento Java para Web....estou com este probleminha aqui relatado e conto com a ajuda dos senhores.... eu pesquisei muito, como os senhores poderão ver, antes de postar essa questão tão banal....

Ainda que este tema seja recorrente, e embora eu esteja há três dias tentando resolver este problema, até agora não consegui. 

Eu tenho um projeto Web, criado no NetBeans 7.2, usando o GlassFish 3.1.2, JSF2.0, EJB3.0 e MySQL. 

Estou no começo do projeto e já me deparei com este problema que é o seguinte: Quando eu inputo alguma palavra com acentuação no campo de textos, esta palavra é gravada com caracteres bizarros no banco de dados. 
O que eu já fiz para tentar resolver: 

1-) Coloquei o encode do projeto para UTF-8. Botão direito no projeto>Propriedades> Encode = UTF-8. 
2-) Compile options = -enconding UTF-8. Botão direito no projeto>Propriedades>Compile = -encoding UTF8. 
3-) vm options = -Dfile.encoding=UTF-8. Botão direito no projeto>Propriedades>Run = -Dfile.encoding=UTF-8. 
4-) private.properties do projeto do netbeans, adicionei a linha: runtime.encoding=UTF-8. 
5-) alterei o arquivo netbeans.conf que fica na pasta de instalação do netbeans, adicionei a linha -J-Dfile.encoding=UTF-8 na opção netbeans_default_options. 
6-) a tabela no meu banco de dados está com o encode UTF-8 

Pelo debug eu verifiquei que até o método que grava o objeto no banco: 

public void create(T entity)  
{
    getEntityManager().persist(entity);
}

não há problemas com a String, ou seja, está com a acentuação ok. O problema acontece daqui pra frente, onde eu n consigo mais debugar... 

Se eu rodo o comando: 

insert into usuario (nome, login, senha, acesso) values ('Exceção', 'daniel', 'senha', '1'); 

de dentro do próprio netbeans via DB connections, ali na abinha serviços.... ele grava a palavra certinho no banco....com todos os acentos e cedilhas..... 
Deve ser algo referente à página JSF....

Estou ficando louco com este bug. Por favor, alguém aí já passou por isso? 

Estou anexando algumas imagens para os senhores apreciarem.

compile options.png
encode projeto.png
netbeans conf.png
private properties.png
resultado tabela.png
table encoding.png
vm options.png

Rafael Ponte

unread,
Aug 29, 2013, 9:36:38 AM8/29/13
to jav...@googlegroups.com

Ola Daniel,

Voce tambem precisa garantir que a conexao entre Java e MySQL funcione via utf-8. Basta passar um parametro na jdbc url se nao estou enganado, ou configurar pelo Hibernate/JPA.

--
Você está recebendo esta mensagem porque se inscreveu no grupo "javasf: JavaServer Faces Group" dos Grupos do Google.
Para cancelar a inscrição neste grupo e parar de receber seus e-mails, envie um e-mail para javasf+un...@googlegroups.com.
Visite este grupo em http://groups.google.com/group/javasf.
Para ver esta discussão na web, acesse https://groups.google.com/d/msgid/javasf/ac4ae38f-228d-497f-a22c-b54a408c2b05%40googlegroups.com.
Para obter mais opções, acesse https://groups.google.com/groups/opt_out.

Cassio Alexandre Sousa

unread,
Aug 29, 2013, 9:38:12 AM8/29/13
to jav...@googlegroups.com
Olá adicione este parâmetro <parameter-encoding default-charset=”UTF-8″/> como está neste site http://www.devsniper.com/glassfish-tips-default-encoding/


--
Você está recebendo esta mensagem porque se inscreveu no grupo "javasf: JavaServer Faces Group" dos Grupos do Google.
Para cancelar a inscrição neste grupo e parar de receber seus e-mails, envie um e-mail para javasf+un...@googlegroups.com.
Visite este grupo em http://groups.google.com/group/javasf.
Para ver esta discussão na web, acesse https://groups.google.com/d/msgid/javasf/ac4ae38f-228d-497f-a22c-b54a408c2b05%40googlegroups.com.
Para obter mais opções, acesse https://groups.google.com/groups/opt_out.



--
Atenciosamente
Cássio Alexandre de Sousa

Jeferson Januario

unread,
Aug 29, 2013, 9:58:49 AM8/29/13
to jav...@googlegroups.com

Daniel Lima

unread,
Aug 29, 2013, 12:16:55 PM8/29/13
to jav...@googlegroups.com
Oi Rafael, obrigado pelo feedaback!
Eu já fiz isso.... veja:

jdbc:mysql://localhost:3306/salas?useUnicode=yes&characterEncoding=UTF-8

Daniel Lima

unread,
Aug 29, 2013, 12:19:45 PM8/29/13
to jav...@googlegroups.com
Olá Cassio....eu já fiz isso....embora não tenha colocado no meu post....
Tô ficando maluco bicho.......

Uma coisa interessante é que se eu criar um webservice pra fazer a mesma coisa, ou seja, gravar um registro no banco.....e consumir esse webservice via mobile, por exemplo, eu gravo sem problemas no banco....... a questão está mesmo quando eu preencho os campos via web page....

Daniel Lima

unread,
Aug 29, 2013, 12:27:27 PM8/29/13
to jav...@googlegroups.com
Olá Jefferson!
Já fiz isso cara...  :-S

Everton Fujimoto

unread,
Aug 29, 2013, 1:20:59 PM8/29/13
to javasf: JavaServer Faces International Group
Isso ocorre por causa do encoding que o navegador envia para o server. Depure a requisição nas ferramentas de desenvolvedor do chrome, na aba "network" que você verá. 

Para solucionar isso, eu precisei fazer:

1. colocar a tag f:view conforme abaixo "cobrindo" todo o formulário (preferi colocar no documento inteiro)
<f:view encoding="ISO-8859-1">
2. a seguinte metatag (não que ela vá mudar o encoding do envio, mas é porque, no meu caso, a informação é enviada ao navegador usando o encoding UTF-8, se você envia usando ISO pode colocar iso na metatag):

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

3. O seguinte cabeçalho nos xhtml (indicando o encoding de leitura dos arquivos):

<?xml version='1.0' encoding='UTF-8' ?>



Att.
Everton William Fujimoto
Hecate Systems
CIO
(47)3394-5516
(47)9947-5481


Cassio Alexandre Sousa

unread,
Aug 29, 2013, 1:20:44 PM8/29/13
to jav...@googlegroups.com
Olá, então daquela forma para mim resolveu no glassfish, obtive o mesmo problema migrando a app para o JBoss 7.1.1 e achei uma solução "meio gambi acho" mas funcionou


import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebFilter;

/**
 * Servlet Filter implementation class CharacterEncoding
 */
@WebFilter({ "/CharacterEncoding", "*.xhtml" })
public class CharacterEncoding implements Filter {

    /**
     * Default constructor. 
     */
    public CharacterEncoding() {
        // TODO Auto-generated constructor stub
    }

/**
* @see Filter#destroy()
*/
public void destroy() {
// TODO Auto-generated method stub
}

/**
* @see Filter#doFilter(ServletRequest, ServletResponse, FilterChain)
*/
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
// TODO Auto-generated method stub
// place your code here

// pass the request along the filter chain
response.setCharacterEncoding("UTF-8");
        request.setCharacterEncoding("UTF-8");
chain.doFilter(request, response);
}

/**
* @see Filter#init(FilterConfig)
*/
public void init(FilterConfig fConfig) throws ServletException {
// TODO Auto-generated method stub
}

}


Talvez isso funcione para você também

atn,


Em 29 de agosto de 2013 13:16, Daniel Lima <danielhen...@gmail.com> escreveu:

Para obter mais opções, acesse https://groups.google.com/groups/opt_out.

Daniel Lima

unread,
Aug 29, 2013, 2:32:24 PM8/29/13
to jav...@googlegroups.com
Fala Cassio!
Cara, tentei aqui e não funcionou ..... ontem eu tinha visto isso em outro fórum e já tinha tentado, mas tentei agora também com sua implementação.....  :-S

Fala Everton!
Cara, eu implementei aqui suas sugestões....deu uma mudada na String gravada no banco...ainda está errada, mas já deu uma mudada...acho que o negócio é por ae.....
Sugere mais alguma coisa?

Por hora muito obrigado pessoal!!! Já estou vendo a luz no fim do túnel.....rsrsrs


--
Você recebeu esta mensagem porque está inscrito em um tópico do grupo "javasf: JavaServer Faces Group" dos Grupos do Google.
Para cancelar a inscrição neste tópico, acesse https://groups.google.com/d/topic/javasf/zb_J9beF_8U/unsubscribe.
Para cancelar a inscrição neste grupo e todos os seus tópicos, envie um e-mail para javasf+un...@googlegroups.com.
Screen Shot 2013-08-29 at 15.27.20.png

Everton Fujimoto

unread,
Aug 29, 2013, 3:24:38 PM8/29/13
to javasf: JavaServer Faces International Group
Olha, não sei exatamente porque, mas só consegui fazer funcionar bem esse encoding com, no f:view, o charset ISO que mencionei antes. 

Outra possibilidade é você usar o filter do spring que faz essa conversão de charset encoding, mas se vc não usa o spring não vejo necessidade de adicionar ele ao projeto... 

Att.
Everton William Fujimoto
Hecate Systems
CIO
(47)3394-5516
(47)9947-5481


Em 29 de agosto de 2013 16:05, Bruno Maomeh <bruno...@gmail.com> escreveu:
do modo que está aí, tá com cara de que você tenha mudado o encoding do banco já com textos dentro dentro dele..
e ele não conseguiu converter o encoding.. ficando com essas interrogaćões..



2013/8/29 Daniel Lima <danielhen...@gmail.com>

Para obter mais opções, acesse https://groups.google.com/groups/opt_out.

--
Você está recebendo esta mensagem porque se inscreveu no grupo "javasf: JavaServer Faces Group" dos Grupos do Google.
Para cancelar a inscrição neste grupo e parar de receber seus e-mails, envie um e-mail para javasf+un...@googlegroups.com.
Visite este grupo em http://groups.google.com/group/javasf.

Bruno Maomeh

unread,
Aug 29, 2013, 3:05:33 PM8/29/13
to jav...@googlegroups.com
do modo que está aí, tá com cara de que você tenha mudado o encoding do banco já com textos dentro dentro dele..
e ele não conseguiu converter o encoding.. ficando com essas interrogaćões..



2013/8/29 Daniel Lima <danielhen...@gmail.com>
Fala Cassio!

Para obter mais opções, acesse https://groups.google.com/groups/opt_out.

Daniel Lima

unread,
Aug 30, 2013, 7:56:49 AM8/30/13
to jav...@googlegroups.com
É minha gente....nada disso está resolvendo.......

Se alguém se interessar, estou em São Paulo, capital...posso levar o projeto para alguém ver em qualquer lugar do estado....eu realmente preciso saber como resolver isso....


Jeferson Januario

unread,
Aug 29, 2013, 6:23:08 PM8/29/13
to jav...@googlegroups.com
Oi Desculpa mandei e nem disse mas nada, mas o erro acredito eu que seja mostrado em vermelho no console dizendo que não foi possivel carregar o enconding porque já foram carregadas as configurações. Se for isso basta criar o xml se não funcionou assim cria o servlet config .xml. Já faz tempo que eu não faço nada então fica bem dificil de lembrar, mas se for isso, me refiro a msg no console tbem, cola ela no google que eu sempre resolvia assim.




2013/8/29 Everton Fujimoto <evert...@gmail.com>

Daniel Lima

unread,
Aug 30, 2013, 10:19:31 AM8/30/13
to jav...@googlegroups.com
AEEEE!!!!!!
Consegui resolver!!!!!!!!!
Caraca!!!!!!!!!!!!!! huahuahuahuahuahuahuahuahua

Baixei esta versão do GlassFish glassfish-3.1.2.2-unix-ml.sh e depois eu configurei a página da seguinte forma: 

<?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">
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core">
    <h:head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    </h:head>
    <h:body>
        <f:view encoding="UTF-8">

            <h:form enctype="multipart/form-data;charset=UTF-8">

Galera, muito, mas muito obrigado por toda a ajuda e boa vontade de vocês!!!!!!

VLW!!!!!


Daniel Lima

unread,
Aug 30, 2013, 10:27:53 AM8/30/13
to jav...@googlegroups.com
Puts Jefferson, resolvi mudando a versão do Glassfish....caraca mano...nem acredito!!!!!!!
Mas suas orientações já estão gravas aqui para uso oportuno .... vlw bicho!


Everton Fujimoto

unread,
Aug 30, 2013, 1:07:55 PM8/30/13
to javasf: JavaServer Faces International Group

Vê se isso te ajuda: 

Att.
Everton William Fujimoto
Hecate Systems
CIO
(47)3394-5516
(47)9947-5481


Everton Fujimoto

unread,
Aug 30, 2013, 1:08:07 PM8/30/13
to javasf: JavaServer Faces International Group

Att.
Everton William Fujimoto
Hecate Systems
CIO
(47)3394-5516
(47)9947-5481


Reply all
Reply to author
Forward
0 new messages