Caracteres estranhos quando grava

71 views
Skip to first unread message

Darkzad

unread,
Aug 21, 2009, 4:24:46 PM8/21/09
to list...@googlegroups.com, php...@yahoogrupos.com.br
Olá pessoal,

Tenho uma aplicação que utiliza Ajax para gravar os dados na tabela cliente.
Na listagem dos dados está aparecendo aqueles caracteres estranhos � � � �

Daí quando altero esse cliente, apagando o caracter  estranho � e colocando a letra correta, e gravo sem utlizar Ajax, a letra fica correta.

Só para constar, quando eu abro o banco, ele está normal.

Antes estava utilizando Collation latin1_swedish_ci  para testar estou utilizando Collation utf8_bin
Mas continua a mesma coisa.

O que pode estar acontecendo?




__________________________________________________ Faça ligações para outros computadores com o novo Yahoo! Messenger http://br.beta.messenger.yahoo.com/

Lucas Almeida

unread,
Aug 21, 2009, 8:06:36 PM8/21/09
to list...@googlegroups.com
Tenta definir no header do php a codificação.

abraços.

2009/8/21 Darkzad <dar...@yahoo.com.br>



--
Obrigado!
Lucas de Almeida.
(41) 8449-7802

Daniel Maffioletti

unread,
Aug 21, 2009, 8:23:29 PM8/21/09
to list...@googlegroups.com
Ponha no início de todas as páginas.
<?php header("Content-Type: text/html; charset=utf-8",true); ?>
,
public function qry( $sql )
{

        /*
         fica a dica, use um método para executar seu SQL. antes da mysql_query use esse conforme está abaixo
       */
       
        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');

        return mysql_query( $sql );
}

desta forma numa mais tive esses problemas, outra dica é que vc deve
alinhar o teu HTML, a tag <meta> tbm deve está setado para UTF-8
se o teu arquivo css também deve está setado, caso esteja especificado.


2009/8/21 Darkzad <dar...@yahoo.com.br>



--
Daniel Maffioletti
(61) 9151-4622 / 3459-8304
Brasília-DF

Giovanni Donda - GMAIL

unread,
Aug 21, 2009, 9:34:21 PM8/21/09
to list...@googlegroups.com
se vc preenche o form, manda via ajax, antes de gravar vc deve recebe assim $sVar = utf8_decode( $sVar ) para enviar para o banco;
se vc pega do banco de dados, seta a var $sVar = utf8_encode( $sVar ), vc obtem a var via ajax

e tudo deve funcionar normal sem ter "mexido" no db.....

pelo menos eu trampo assim.....

entendeu ??....rs...

Lucas Almeida escreveu:

Edson Kunziewski

unread,
Aug 21, 2009, 9:47:13 PM8/21/09
to list...@googlegroups.com
obtive o mesmo problema um tempo atraz, ao definir no header do php a condificação vai resolver, pelo menos no meu caso foi resolvido.

de uma olhada aqui:
http://forum.imasters.uol.com.br/index.php?/topic/173603-resolvido%26nbsp%3Bdica-solucao-final-para-acentuacao-no-ajax/

Atenciosamente,
א Édson Kuzniewski (Br0w)
¬ con...@edsonk.com.br
¬ http://www.edsonk.com.br


2009/8/21 Lucas Almeida <lucasa...@gmail.com>

Darkzad

unread,
Aug 22, 2009, 9:21:57 AM8/22/09
to list...@googlegroups.com
Dessa forma consegui acertar.
Tive que colocar o <?php header("Content-Type: text/html; charset=ISO-8859-1",true) ?> na entrada e na saída.

Valeu

Edson Kunziewski escreveu:
__________________________________________________ Fa�a liga��es para outros computadores com o novo Yahoo! Messenger http://br.beta.messenger.yahoo.com/

Bruno

unread,
Aug 22, 2009, 11:54:54 AM8/22/09
to LISTA PHP
É o seguinte... quando eu era iniciante em programação eu vivia tendo
este problema.
A função htmlentities() resolveu parcialmente meu problema. Mas quando
eu tinha tags html na string aí já era.
Então eu desenvolvi uma função que substitui a maior parte dos
caracteres especiais...

<?php

function converte_string($text, $debug_on = false){

$acentuadas = array('á', 'Á', 'ã', 'Ã', 'â', 'Â', 'à', 'À',
'é', 'É', 'ê', 'Ê', 'í', 'Í', 'ó', 'Ó', 'õ', 'Õ', 'ô', 'Ô', 'ú', 'Ú',
'ü', 'Ü', 'ç', 'Ç');
$convertidas = array('&aacute;', '&Aacute;', '&atilde;',
'&Atilde;', '&acirc;', '&Acirc;', '&agrave;', '&Agrave;', '&eacute;',
'&Eacute;', '&ecirc;', '&Ecirc;', '&iacute;', '&Iacute', '&oacute;',
'&Oacute;', '&otilde;', '&Otilde;',
'&ocirc;', '&Ocirc;', '&uacute;', '&Uacute;', '&uuml;', '&Uuml;',
'&ccedil;', '&Ccedil;');
$saida = str_replace($acentuadas, $convertidas, $text);

if ($debug_on){
echo $saida;
var_dump($saida);
}

return $saida;
}

?>


On 22 ago, 10:21, Darkzad <dark...@yahoo.com.br> wrote:
> Dessa forma consegui acertar.
> Tive que colocar o <?php header("Content-Type: text/html; charset=ISO-8859-1",true) ?> na entrada e na saída.
> Valeu
> Edson Kunziewski escreveu:obtive o mesmo problema um tempo atraz, ao definir no header do php a condificação vai resolver, pelo menos no meu caso foi resolvido.
> de uma olhada aqui:http://forum.imasters.uol.com.br/index.php?/topic/173603-resolvido%26nbsp%3Bdica-solucao-final-para-acentuacao-no-ajax/
> Atenciosamente,
> א Édson Kuzniewski (Br0w)
> ¬con...@edsonk.com.br
> ¬http://www.edsonk.com.br2009/8/21 Lucas Almeida<lucasa...@gmail.com>Tenta definir no header do php a codificação.
> abraços.2009/8/21 Darkzad<dar...@yahoo.com.br>Olá pessoal,
> Tenho uma aplicação que utiliza Ajax para gravar os dados na tabela cliente.
> Na listagem dos dados está aparecendo aqueles caracteres estranhos
> Daí quando altero esse cliente, apagando o caracter  estranho e colocando a letra correta, e gravo sem utlizar Ajax, a letra fica correta.
> Só para constar, quando eu abro o banco, ele está normal.
> Antes estava utilizando Collationlatin1_swedish_ci para testar estou utilizando Collationutf8_bin
> Mas continua a mesma coisa.
> O que pode estar acontecendo?
>
> __________________________________________________ Faça ligações para outros computadores com o novo Yahoo! Messengerhttp://br.beta.messenger.yahoo.com/

Éderson Sandre

unread,
Aug 22, 2009, 2:18:47 PM8/22/09
to list...@googlegroups.com
Nossa Bruno muito massa esta sua função, eu eu sempre procurei algo semelhante mais nucna encontrarei...

Valeu.. Ajudo muito...

Éderson Sandre
Analista Programador de Sistemas WEB

Fernando Emmanoel Borba

unread,
Aug 22, 2009, 6:28:42 PM8/22/09
to list...@googlegroups.com
Eu fiz um tutorial sobre UTF-8. Não precisa usar função e nem nenhum outro artifício.

http://www.vitalecom.com.br/blog/2009/08/acentos-do-portugues-no-php-usando-utf-8/

Abraço,

Fernando Emmanoel Borba
Vitalecom - Programador Senior
Curso PHP Online - Turma início 21/09
http://www.vitalecom.com.br/curso-php/

2009/8/22 Éderson Sandre <ederson...@gmail.com>



--
Fernando Emmanoel Borba
Apoio ao Usuário
CR1 - Controle de Reservas :: www.cr1.com.br
Fone: (48) 3304-9004  Cel: (48) 9925-3126
Skype: fernando.emmanoel.borba
Twitter: pesquisahotel

Bruno Nascimento

unread,
Aug 24, 2009, 7:37:26 AM8/24/09
to list...@googlegroups.com
Só pra constar essas duas funções nativas do PHP:htmlentities e htmlspecialchars.


2009/8/22 Fernando Emmanoel Borba <fern...@gmail.com>



--
[]'s

Bruno Nascimento
www.dbrunonascimento.com.br
Reply all
Reply to author
Forward
0 new messages