Jump to content
hyperpixel

problema de acentuacao na aplicacao

Recommended Posts

Amigos estou com problema serio com acentuacao na minha aplicacao: vou resumir problema e dados da aplicação:


Quando faço insert no BD, os dados chegam com problemas de acento, chegam estranhos e bem feios.

Após corrigir isso na base(arrumando o acento) é por exemplo, quando dou print dele na tela, palavra fica com erro de acento mas diferente de como entra no BD, os acentos ficam com losango e uma interrogação dentro.!!


Consigo resolver isso usando utf8_encode() para gravar dados (entra certo no BD), e utf8_decode(); ele escreve palavra sem problemas de acentos.

Não quero fazer isso!! seria gambiarra, pois terei que colocar essas tags em varias paginas.


Problema de banco ou php, acho que no banco, ja mudei charset da pagina utf8, iso-8859, fazendo isso com php header, e nao resolve, como resolvo isso?




abaixo dados da apliacao:


<!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" lang="pt-br" xml:lang="pt-br">


<head>


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

<!--<meta charset="iso-8859-1";content="text/html" http-equiv="Content-Type">-->



banco e tabelas


collation=utf8_general_ci



Desde ja grato


Share this post


Link to post
Share on other sites

Coloca isso antes do seu Insert:

 

header('Content-Type: text/html; charset=utf-8');
mysql_query("SET NAMES 'utf8'");
mysql_query('SET character_set_connection=utf8');
mysql_query('SET character_set_client=utf8');
mysql_query('SET character_set_results=utf8');

 

Tira essa linha do seu HTML

<!--<meta charset="iso-8859-1";content="text/html" http-equiv="Content-Type">-->
Edited by Bru_ce

Share this post


Link to post
Share on other sites

Mas nao existe outra forma, seria tal da gambiarra, como exemplo nas empresas que trabalhei nao é preciso isso, simplesmente faz insert e echo acentos, rodam normalmente, isso que quero eu mudei banco para utf8 será que foi isso? deixo padrão latin abaixo variáveis do banco:

 

-------------------------------------------------------

 

 

character set client utf8 (Valor global) latin1 character set connection utf8 (Valor global) latin1 character set database latin1 character set filesystem binary character set results utf8 (Valor global) latin1 character set server latin1 character set system utf8 character sets dir /usr/share/charsets/ collation connection utf8_general_ci (Valor global) latin1_swedish_ci collation database latin1_swedish_ci collation server latin1_swedish_ci

Edited by hyperpixel

Share this post


Link to post
Share on other sites

Cara, tenta falar em PT-BR por favor e utilizar "virgula", não da para entender o que você fala.

 

Deixa sua tabela assim: utf8_general_ci

Share this post


Link to post
Share on other sites

... arrumei as virgulas, sorry, as tabelas estão nesse formato!!

 

utf8_general_ci

 

Alguma outra ideia de onde esta o problema?

Share this post


Link to post
Share on other sites

como está seu html? iso-8859-1 ou utf8?

 

Configura desta forma que não haverá problemas.

 

HTML = UTF8

 

MySQL = utf8_general_ci

 

Dá uma olhada na sua IDE se está salvando os arquivos em utf8 tbm.

Share this post


Link to post
Share on other sites

meu html esta como mostrei no começo do post, em utf8, vou postar novamente aqui e o banco também esta no mesmo formato, utf8 da uma olhada acima que tem os dados da aplicação:

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR...ransitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="pt-br" xml:lang="pt-br">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

Share this post


Link to post
Share on other sites

- Exclui todos os dados da sua tabela,
- Deixe a tabela assim : utf8_general_ci

- Por query dê: TRUNCATE suaTabela.

- Deixe seu HTML assim:

 

<!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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

 

Coloque isso antes do seu INSERT:

 

header('Content-Type: text/html; charset=utf-8');
mysql_query("SET NAMES 'utf8'");
mysql_query('SET character_set_connection=utf8');
mysql_query('SET character_set_client=utf8');
mysql_query('SET character_set_results=utf8');

 

 

Caso Nâo dê certo poste seu HTML e PHP separados.

Edited by Bru_ce

Share this post


Link to post
Share on other sites
Bruce é necessario todos estes passos? desculpe, mas se continuar com duvidas nao adianta:
excluir os dados, no caso eles estao certos na tabela eu excluir efetuo as operacoes como falou, truncate e insiro os mesmos dados novamente?
o banco e as tabelas (todas) estao nesse formato: utf8_general_ci
e o html, unica coisa que tem a mais seria:

 

<html xmlns="http://www.w3.org/1999/xhtml" lang="pt-br" xml:lang="pt-br" >

 

esse seu modelo;

 

<html xmlns="http://www.w3.org/1999/xhtml" >

 

o que quis dizer tirando tags mysql no insert, esta praticamente identico ao que falou, isso resolveria a leitura do dado no banco? pois como falei tambem apresenta problema vem um losango com interrogacao dentro.
Obrigado vou tentar e posto resultado.

Share this post


Link to post
Share on other sites

Tenta fazer isso apenas então:

 

 

header('Content-Type: text/html; charset=utf-8');
mysql_query("SET NAMES 'utf8'");
mysql_query('SET character_set_connection=utf8');
mysql_query('SET character_set_client=utf8');
mysql_query('SET character_set_results=utf8');

Share this post


Link to post
Share on other sites
Amigos nada ainda!! fiz todo set de config e nao resolveu, continua do mesmo jeito.

setei charset para iso-8859-1 / utf-8, e nao resolveu.


com caracteres especiais ele acentua certo exemplo:

- contemplação / escreve comtemplação



ja se no banco tiver comtemplação, com acentos da forma normal ele escreve:


comtempla��o



header('Content-Type: text/html; charset=utf-8');

<meta charset="iso-8859-1";content="text/html" http-equiv="Content-Type">


-----------------------------------------------------



<meta charset="iso-8859-1";content="text/html" http-equiv="Content-Type">

header('Content-Type: text/html; charset=iso-8859-1');



----------------------------


coloquei estas tags mas quando tiro utf8_encode() escreve com esse problemas de acento.


alguma ideia??!!

Share this post


Link to post
Share on other sites

so colocar isso na sua pagina que vc esta criando!!

 

coloca lem cima!!!

 

<?
/*****************ERROS EM ACENTOS**************/
header('Content-Type: text/html; charset=utf-8');
mysql_query("SET NAMES 'utf8'");
mysql_query('SET character_set_connection=utf8');
mysql_query('SET character_set_client=utf8');
mysql_query('SET character_set_results=utf8');
?>

Share this post


Link to post
Share on other sites

 

so colocar isso na sua pagina que você esta criando!!

 

coloca lem cima!!!

 

<?
/*****************ERROS EM ACENTOS**************/
header('Content-Type: text/html; charset=utf-8');
mysql_query("SET NAMES 'utf8'");
mysql_query('SET character_set_connection=utf8');
mysql_query('SET character_set_client=utf8');
mysql_query('SET character_set_results=utf8');
?>

 

 

Tenta colaborar com posts recentes, esse é de 2013.

Share this post


Link to post
Share on other sites

Rapaz, não sei se isso resolve seu problema, mas resolveu o meu.

 

para mandar os dados corrigidos manda assim:

$nome 			= utf8_decode($_POST['nome']);

usando o recursos utf8_decode, manda os dados com a acentuação correta.

 

e pra imprimi-los faz assim:

print utf8_encode($nome)

eu tambem tentei todos os passo que a gelra indico pra você mas pra mim so resolveu assim.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.