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

Posted on

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!!! 😉

30 thoughts on “Problemas com UFT-8 e ISO8859-1 em PHP/Mysql

    Ronaldo said:
    28/02/2008 at 20:47

    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!!!

    Muito Bom!!! said:
    17/07/2008 at 17:16

    Brother muito boa essa solução!
    Me ajudou muito.
    Parabéns!

    Abraço!!!

    Felipe said:
    02/09/2008 at 20:35

    Excelente!!
    Me tirou uma baita dor de cabeça.

    Valeu!!

    Alberto Moreira said:
    30/03/2009 at 15:37

    Muito bom

    tava me matando pra encontrar agora sim!

    Eldon said:
    29/04/2009 at 11:13

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

    Mattheus said:
    12/09/2009 at 19:33

    Cara você salvou minha vida…

    Óliver said:
    07/12/2009 at 02:26

    Vc nem imagina como me salvou. quase 60 dias de esforço pra encontrar essa dica quente.

    André Bastos said:
    01/03/2010 at 11:19

    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

      alberane said:
      02/03/2010 at 09:21

      Olá André!

      Que bom que foi útil, esse é a intenção!

      Obrigado pelo comentário. 😉

    João Paulo said:
    22/04/2010 at 14:22

    muito bom… estive procurandl algo.. o dia inteiro…
    valeu…
    Deus te abençoe muito…

    Jairo said:
    20/08/2010 at 03:26

    Cara muito obrigado, era disso q eu estava precisando!
    Abraços cara!

    Ademir said:
    12/02/2011 at 21:44

    Ótima solução, resolveu meu problema!
    Estava procurando a solução desses caracteres que nem louco e você foi fera! Valeu!!!

    Sucesso!

    Diego Rangel said:
    15/04/2011 at 11:29

    Poxa fera! Muito bom! Era exatamente isso que eu estava precisando! Valeu!

    Fábio said:
    03/05/2011 at 15:36

    Vc deu a morta pra genti! Essa dica terminou com todos os meus problemas aqui. Valeu aí bixo!!

    victor matuk said:
    14/06/2011 at 12:44

    perfeito, acabou com os meus problema também

    Victor said:
    06/10/2011 at 21:25

    Ó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!

      alberane said:
      07/10/2011 at 11:21

      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.

    Lucas said:
    15/10/2011 at 01:11

    flw demais mano !

    Lucas said:
    15/10/2011 at 01:11

    vlw

    Alexandre Xantals said:
    04/07/2012 at 22:27

    … isso foi ótimo … já estava tentando há umas 3 horas … MUITO OBRIGADO …

    Dérick Hogan Pimenta said:
    18/07/2012 at 16:27

    Justamente o que eu estava precisando. Muito obrigado!

    NILTON SOARES ROCHA said:
    13/10/2012 at 22:12

    Era justamente isto que eu estava procurando agora os dados são inseridos corretamente. Muito obrigado por esta dica preciosa.

    Paulo Chagas said:
    12/04/2013 at 16:31

    Perfeito!

    junior said:
    14/05/2013 at 11:46

    muito bom cara, simples e objetivo…valeu a força
    mysql_query(“SET NAMES ‘utf -8’;”);

    César said:
    27/05/2013 at 19:30

    PERFEITO!
    Estava com este problema ao recuperar dados do BD.

    Antonio Sales said:
    20/06/2013 at 15:28

    Coloque isso no que funciona.

    Davi Osval Wagner said:
    25/07/2013 at 21:11

    Muito bom cara, ainda mais pra mim que sou iniciante em PHP e estou aprendendo SOMENTE em vídeo aulas. E isso me tirou uma dor de cabeça de MESES!

    Crobbs said:
    14/01/2014 at 22:51

    Sem comentários!! Muito bom! Parabéns.

    Karlos said:
    06/02/2014 at 23:33

    Perdi um bom tempo tentando achar o erro…
    Muito obrigado pela solução!

    Diogo Leitoles Bandeira said:
    27/05/2015 at 15:27

    Cara, que maravilha de dica! Salvou várias horas de cabeça quebrada por aqui!!!
    Grande abraço!

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios são marcados com *