Problema com os caracteres acentuados

10 respostas
M

Boa tarde pessoal, estou tendo problemas quando realizo cadastro ou tento visualizar informações da base de dados. Já modifiquei o Collation do banco, mas ainda continua inserindo com os caracteres “esquisitos”, pensei que poderia ser o driver do sql server (jtds 1.2.5), pois consigo inserir manualmente pela query no banco.

Alguém já passou por isso? Estou com medo de deletar o banco e começar do zero e ainda continuar com o erro.

Valeu

10 Respostas

gabrielemidio

As vezes é apenas para o banco identificar quais caracteres que são! porém no retorno em seus sistema ela volta com esses caracteres ou normal?

att

Gabriel

M

Volta com esses caracteres esquisitos.

Tem alguma idéia do que possa ser, o banco ou a aplicação?

M

Porém quando cadastro na mão pelo SGDB o caracter aparece normal com acento correto. É apenas quando cadastro através da interface de cadastro!!
Provavelmente é algo na minha aplicação que está perdendo as referências dos caracteres acentuados!

Alguém dá uma dica?

gabrielemidio

Então cara as vezes é a sua biblioteca do banco que está desatualizada, ou pode ser o driver mesmo, como você disse que não é o Collation do SQL, pois ocorreu isso uma vez comigo porém eu utilizo o MySQL eu mudei algumas coisinhas do Collation dele ae sim o caracteres voltaram ao normal.Tenta ver se sua biblioteca ou o drive está desatualizado!

att

Gabriel

M

Alterei o Driver de conexão para o da microsoft versão 4, consegui fazer a conexão, mas ainda continua os acentos sendo cadastrados ‘esquisitamente’ rs
Vou tentar aplicar em outro SGBD que tenho aqui na máquina virtual.

Vlw

gabrielemidio

ok

M

Mudei de SGDB e ainda continuou uhahauhua, não sei mais o que fazer.

M

Consegui resolver, irei postar para poder ajudar os demais.

1º - Alterar a base de dados (MySQL) para o Collation latin1_general_ci e respectivamente suas tabelas.

2º - Voltar para a IDE (Eclipse no meu caso) clicar com o botão direito e em propriedades do projeto > resources > text file encoding modificar para ISO-8859-1, antes estava UTF-8.

3º - Mesmo alterando o projeto para o encoding ISO-8859-1, tive que colocar cada página para salvar como ISO-8859-1, clicando com o botão direito properties > resources > text file encoding, antes estava UTF-8 também.(Após esta modificação os caracteres podem ficar alterados, você terá que ajustar manualmente os acentos novamente)

4º - Como estou utilizando Facelets, no inicio da página template(página principal do facelets), coloquei o encoding via código xml então ficou assim:

<?xml version="1.0" encoding="ISO-8859-1" ?>
<!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:ui="http://java.sun.com/jsf/facelets"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:f="http://java.sun.com/jsf/core"
	xmlns:p="http://primefaces.org/ui">

5º - As páginas que importaram a página template também coloquei o código xml de encoding, não testei sem este código mas quem quiser testar e postar o resultado fique a vontade.

<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<ui:composition template="/pages/layout.xhtml"
	xmlns="http://www.w3.org/1999/xhtml"
	xmlns:ui="http://java.sun.com/jsf/facelets"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:f="http://java.sun.com/jsf/core"
	xmlns:p="http://primefaces.org/ui">

No meu caso foi suficiente realizar estas operações, creio que o problema possa até ir mais além a nível de Sistema Operacional. Demorei bastante para resolver este pequeno problema, pois como vocês podem ver não depende apenas da aplicação, e sim da base, tabelas, páginas e etc.

Obrigado.

Arthemus

Marlon, sua solução também me ajudou aqui, mesmo depois de um tempo dessas postagens, apenas pra documentar, foi preciso realmente adicionar a clausula

&lt;?xml version=&quot;1.0&quot; encoding=&quot;ISO-8859-1&quot; ?&gt; em todas as paginas xhtml, até mesmo as que utilizavam template.

Obrigado!

M

Arthemus fico feliz em ter ajudado abraço!

Criado 19 de abril de 2012
Ultima resposta 11 de mai. de 2013
Respostas 10
Participantes 3