Programas

Problemas com UFT-8 e ISO8859-1 em PHP/Mysql

Imagine a situação:

Você cria uma página php com codificação UTF-8.

Cria o banco de dados também UTF-8;

Cria as tabelas TAMBÉM em UTF-8…

Mas quando envia dados de um formulário para o seu banco ou quando vai ler informações desse mesmo banco a acentuação fica toda estranha!!! E você fica batendo cabeça para entender o problema!!! Horas à fio….

Faça o seguinte… logo após efetuar a conexão com o mysql… ex.:

mysql_connect($server,$user,$pass);

Execute…

mysql_query("SET NAMES 'utf8';");

Com isso os dados trafegados entre sua página e o servidor mysql não serão codificados/decodificados para conjunto de caracteres estranhos e tudo fica UTF-8!!!

Use o SET NAMES para o “charset” que você estiver usando tanto na página quando no banco.

Espero ter ajudado!!! 😉

Anúncios

31 comentários sobre “Problemas com UFT-8 e ISO8859-1 em PHP/Mysql

  1. Fala ae bil!!!!

    tava exatamente com esse problema… 😀
    hoje tava falando com o Matheus e ele me falou do site Sabor de Verão, fui ver como ficou, e vi o teu link… e “a primeira coisa q vejo?” a solução do meu problema… ah ficou muito bom o site lá…. Valew!!!

  2. Cara, vc salvou minha vida, estava a tempos atras disso, e ficava resolvendo somente com utf8_encode e utf8_decode, ÊÊÊÊÊÊÊÊ.

  3. Caraca mano muito show, estava com esse problema nos acentos e caracteres especiais.

    Sua solução foi marailhosa e o resultado então magnifico.

    Geralmente eu não respondo nessas postagens, mais essa eu tive que comentar, muito obrigado e parabéns realmente me ajudou!

    Grande abraço, dedee

  4. Ótimo POST!

    Só uma dúvida, e se eu escrever em uma página HTML uma palavra com acentuação tipo “ACENTUAÇÃO” na página, não salvando em BD, e “importar” com o LOAD via jquery, vai reportar caracteres inválidos, há como “importar” essa página html sem ter de converter os caracteres para utf8 e sair correto ?

    Forte Abraço!

    1. Não se se entendi… mas usando jquery é possível definirmos a codificação ao usar a função load()…. é alguma coisa parecida com isso…

      $.ajaxSetup({
      scriptCharset: “utf-8” ,
      contentType: “text/html; charset=utf-8”
      });

      Com isso a sua chamada virá em utf-8.

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s