Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

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


Compartilhar este post


Link para o post
Compartilhar em outros 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">-->

Compartilhar este post


Link para o post
Compartilhar em outros 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

Compartilhar este post


Link para o post
Compartilhar em outros 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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

 

utf8_general_ci

 

Alguma outra ideia de onde esta o problema?

Compartilhar este post


Link para o post
Compartilhar em outros 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.

Compartilhar este post


Link para o post
Compartilhar em outros 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" />

Compartilhar este post


Link para o post
Compartilhar em outros 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.

Compartilhar este post


Link para o post
Compartilhar em outros 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.

Compartilhar este post


Link para o post
Compartilhar em outros 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');

Compartilhar este post


Link para o post
Compartilhar em outros 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??!!

Compartilhar este post


Link para o post
Compartilhar em outros 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');
?>

Compartilhar este post


Link para o post
Compartilhar em outros 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.

Compartilhar este post


Link para o post
Compartilhar em outros 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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.