Jump to content


Photo

[resolvido] Codificação Em Conflito, Collation... Utf8_bin X Iso_8859-


  • Faça o login para participar
8 replies to this topic

#1 leonelbr

leonelbr

    12 Horas

  • Usuários
  • 205 posts
  • Sexo:Masculino

Posted 12/05/2009, 16:32

FalAe galera!

To com um problema que já fucei todo e nao resolvi nada. É o seguinte, precisei daquele sistema que "clica no estado e lista as cidade", até blz. Acabei achando com ajax, uma belezura com tabelas completas contento os estados e cidades de todo Brasil, relacionados entre si pelo campo ID.

Enfim, quando tudo parecia produção da Walt Disney, veio a tona problema conflito de codificação... a tabela está naquele UTF8_bin e eu com a ISO-8859-1

Ai eu tentei mudar no navegado para o 'esquema' da tabela, mas ocorreu que os texto ficaram desconfigurados, além dos dados da tabela TAMBÉM ficarem ruins. Ai eu fui no PHPmyADMIN e mudei o campo collation para latin1 e tal... deu em nada.

Mas um detalhe importante é que quando listo diretamente no PHPmyADMIN, os dados estão certinhos, tudo configurado.

Existe alguma função que ajude?

Esse é o caso que parou toda minha "linha de produção" de sites rsrs.

Se alguém já tiver superado um trauma parecido ou for expert por natureza ou simplesmente tiver uma solução e quiser compartilhar, desde já agradeço.

Vlw!

Edição feita por: leonelbr, 13/05/2009, 13:10.

FLASH FORWARD - Novo seriado da ABC. Um substituto para LOST?
Série de ficção cientifica que promete arrastar muitos fãs, principalmente os de Lost. Confira mais em:
www.flashforwardbr.com
-------------------------------------------------------------------------------------------------
Portal Evangélico ( AMIZADE | Downloads | Cartões Virtuais )

#2 Maykel Esser

Maykel Esser

    Super Veterano

  • Usuários
  • 1536 posts
  • Sexo:Masculino
  • Localidade:Curitiba - PR

Posted 12/05/2009, 16:39

na frente da String, coloca utf8_encode($blablabla). Com isso, seus caracteres se transformam em UTF8! Csao seja o inverso, coloque utf8_decode!

Abraços!

Se este post lhe ajudou, ajude o fórum também. Use a reputação de mensagens! add.png


#3 leonelbr

leonelbr

    12 Horas

  • Usuários
  • 205 posts
  • Sexo:Masculino

Posted 13/05/2009, 09:53

Vlw por responder.

Por exemplo, se eu tiver o seguinte:

printf('<option value="%s">%s</option>', $Cidade->cidade_nome, $Cidade->cidade_nome );

Como faço para "cidade_nome" (que está em utf8) seja impressa corretamente?


-----------------------------------------------------------------------------------------------------------------------
A T U A L I Z A N D O
-----------------------------------------------------------------------------------------------------------------------


Percebi que uma parte do arquivo de conexao eu apaguei, porque esta dando erro. Essa parte é:

mysql_set_charset ( 'utf8' );

MAS se eu coloco ela novamente, dá erro:

Fatal error: Call to undefined function: mysql_set_charset() in /home/encontr2/public_html/conn.php on line 4

Onde a linha 4 é exatamente essa "charset"...

Obs.: O tal sistema de estado e cidades que estou tentando adaptar está no seguinte endereço:

http://www.surrealar...mente-com-ajax/


Espero que alguém me ajude.

Obrigado mais uma vez.

Edição feita por: leonelbr, 13/05/2009, 09:55.

FLASH FORWARD - Novo seriado da ABC. Um substituto para LOST?
Série de ficção cientifica que promete arrastar muitos fãs, principalmente os de Lost. Confira mais em:
www.flashforwardbr.com
-------------------------------------------------------------------------------------------------
Portal Evangélico ( AMIZADE | Downloads | Cartões Virtuais )

#4 fly2k

fly2k

    Super Veterano

  • Usuários
  • 2262 posts
  • Sexo:Não informado

Posted 13/05/2009, 10:05

Qual a versão do Mysql que você está utilizando e qual a versão do PHP ?
Quer aprender PHP? -> www.manjaphp.com.br
Tutoriais, código colaborativo (pastebin), curso de PHP, artigos e etc.

#5 kleryson

kleryson

    Mestre

  • Usuários
  • 687 posts
  • Sexo:Masculino

Posted 13/05/2009, 10:09

Bom acho que essa função do PHP vai te ajudar...


iconv

(y)?

#6 EternaL

EternaL

    12 Horas

  • Usuários
  • 299 posts
  • Sexo:Masculino
  • Localidade:Blumenau, SC

Posted 13/05/2009, 12:00

Seguinte, sempre que você for retornar um texto via Ajax, você precisa fazer um enconde no texto para utf8. Na página, que no tutorial se chama backend.php, faça a seguinte alteração:

De
printf(‘<option value=”%s”>%s</option>’, $Cidade->cidade_id, $Cidade->cidade_nome );

Para
echo utf8_encode('<option value="'. $Cidade->cidade_id .'">'. $Cidade->cidade_nome .'</option>';

Isso deve resolver seu problema nos <select>.
Dai suas páginas podem ter a codificação ISO-8859 normal se você quiser.
Magnum Web - Trazendo o melhor da web para você

Desenvolvimento de websites e sistemas web. Acesse http://www.magnumweb.com.br

#7 leonelbr

leonelbr

    12 Horas

  • Usuários
  • 205 posts
  • Sexo:Masculino

Posted 13/05/2009, 12:55

FalAe!

Eu peguei as funções indicadas, revirei lá no "manuel" e tentei outras tmb. Não resolveu.

EternaL, tinha até chegado a algo parecido com o que vc postou, mas utilizando o print mesmo.

Coloquei da forma indicada:

echo utf8_encode('<option value="'. $Cidade->cidade_id .'">'. $Cidade->cidade_nome .'</option>';

mas retornou o seguinte erro:

Parse error: syntax error, unexpected ';' in /home/encontr2/public_html/admin/backend.php on line 7

* linha 7 é a linha com o "echo utf8_encode"...

E as versões são:

Versão do Apache 1.3.41 (Unix)
Versão do PHP 5.2.8
Versão do MySQL 5.0.67-community

Já to ficando estressado com essas codificações... :shit:

Vlw denovo!

Edição feita por: leonelbr, 13/05/2009, 12:56.

FLASH FORWARD - Novo seriado da ABC. Um substituto para LOST?
Série de ficção cientifica que promete arrastar muitos fãs, principalmente os de Lost. Confira mais em:
www.flashforwardbr.com
-------------------------------------------------------------------------------------------------
Portal Evangélico ( AMIZADE | Downloads | Cartões Virtuais )

#8 EternaL

EternaL

    12 Horas

  • Usuários
  • 299 posts
  • Sexo:Masculino
  • Localidade:Blumenau, SC

Posted 13/05/2009, 13:03

Opa! =P

É que faltou um parênteses

echo utf8_encode('<option value="'. $Cidade->cidade_id .'">'. $Cidade->cidade_nome .'</option>');

Magnum Web - Trazendo o melhor da web para você

Desenvolvimento de websites e sistemas web. Acesse http://www.magnumweb.com.br

#9 leonelbr

leonelbr

    12 Horas

  • Usuários
  • 205 posts
  • Sexo:Masculino

Posted 13/05/2009, 13:09

Aê! tu é O cara. :boxing:

Funcionou 10 aqui.

Vlw mesmo e tmb a galera que postou lá encima. Problema resolvido!
FLASH FORWARD - Novo seriado da ABC. Um substituto para LOST?
Série de ficção cientifica que promete arrastar muitos fãs, principalmente os de Lost. Confira mais em:
www.flashforwardbr.com
-------------------------------------------------------------------------------------------------
Portal Evangélico ( AMIZADE | Downloads | Cartões Virtuais )




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq