Como corrigir problemas de acentuação causados por collation errada no MySQL
Oi! Eu sou a Sensei da GeHost 🎓 e vou te ajudar a resolver um dos probleminhas mais comuns (e mais assustadores à primeira vista) em sites com banco de dados: aquele texto cheio de símbolos estranhos no lugar dos acentos, tipo "informa√ß√£o" ou "Ol├í" em vez de "informação" ou "Olá".
Calma, isso quase sempre é um problema de collation (também chamada de "ordenação de caracteres") — uma configuração do MySQL que define como o banco entende e organiza os caracteres, incluindo acentos e caracteres especiais do português. Vamos resolver juntos, passo a passo. 😊
Por que isso acontece?
Isso costuma acontecer quando existe uma divergência de codificação em algum ponto da cadeia: o site salva o texto em um padrão (por exemplo, UTF-8), mas o banco de dados, a tabela ou a coluna estão configurados com uma collation diferente (por exemplo, latin1). O resultado é esse "quebra-cabeça" de símbolos no lugar das letras acentuadas.
Dica da Sensei: antes de mexer em qualquer coisa, faça um backup do seu banco de dados. Isso te dá segurança total para testar a correção sem medo de perder informação. No cPanel, vá até a área de Backup e gere um backup do banco de dados específico.
Passo 1: identifique a collation atual do seu banco
- Acesse o cPanel da sua hospedagem.
- Procure a seção Bancos de Dados MySQL ou abra o phpMyAdmin (também disponível no cPanel).
- No phpMyAdmin, clique no nome do seu banco de dados no menu lateral.
- Clique na aba Operações. Lá você verá o campo Collation, mostrando a configuração atual (por exemplo,
latin1_swedish_ciouutf8_general_ci).
Passo 2: ajuste a collation para o padrão correto
O ideal hoje em dia é usar utf8mb4_unicode_ci (ou utf8mb4_general_ci), pois além de suportar acentos e caracteres especiais do português, também suporta emojis e outros símbolos modernos.
- Ainda na aba Operações do phpMyAdmin, no campo Collation, selecione utf8mb4_unicode_ci.
- Clique em Executar (ou "Go") para aplicar a mudança em todo o banco.
- Repita o processo tabela por tabela: clique em cada tabela, vá em "Operações" (ou "Estrutura" → "Alterar collation") e aplique a mesma collation.
- Se necessário, ajuste também coluna por coluna (principalmente as colunas do tipo texto:
VARCHAR,TEXT, etc.), pois cada coluna pode ter sua própria collation configurada.
Dica da Sensei: se o seu site usa WordPress, Joomla ou outro CMS, muitos deles têm um arquivo de configuração (como owp-config.php) onde é possível definirDB_CHARSETcomoutf8mb4. Vale conferir se está alinhado com a collation do banco.
Passo 3: e se o texto já estiver "quebrado" (aqueles símbolos estranhos)?
Aqui vai um ponto importante: ajustar a collation corrige a configuração daqui pra frente, mas se os dados já foram salvos incorretamente no banco, apenas trocar a collation não conserta o texto que já está lá — porque o problema já aconteceu no momento da gravação.
Nesses casos, existem duas situações comuns:
- O texto está "duplamente convertido" (mojibake): geralmente é possível reverter com funções de conversão de charset dentro de uma consulta SQL, mas esse processo exige cuidado, pois um comando incorreto pode piorar a situação em vez de corrigir.
- O texto foi salvo com a collation errada, mas sem duplicação: muitas vezes basta exportar os dados, ajustar o charset da exportação e reimportar já com a collation correta.
Dica da Sensei: se você não tem familiaridade com comandos SQL, esse é o tipo de correção que vale a pena pedir ajuda ao nosso suporte. Mexer direto nos dados sem experiência pode gerar perdas irreversíveis — e é exatamente pra isso que estamos aqui! 💛
Passo 4: confirme que o site está enviando UTF-8 corretamente
Para evitar que o problema volte a acontecer, verifique também:
- Se as páginas do seu site declaram
<meta charset="UTF-8">no HTML. - Se a conexão do seu sistema com o banco de dados está configurada para usar
utf8mb4(isso geralmente fica no arquivo de configuração da aplicação/CMS). - Se todas as tabelas e colunas envolvidas no seu sistema estão com a mesma collation — misturar collations diferentes dentro do mesmo banco é uma causa muito comum de erro.
Resumindo
Problemas de acentuação quase sempre têm uma origem simples: uma divergência entre a collation do banco/tabela/coluna e a codificação usada pelo seu site. Ajustando tudo para utf8mb4_unicode_ci de forma consistente, o problema tende a não voltar mais.
Ficou com dúvida em algum passo? Fale com o suporte da GeHost pelo painel do cliente. A gente te ajuda a fazer essa correção com tranquilidade, sem risco pros seus dados. 🌸