Banco de dados 33 visualizações

Como configurar o charset e collation corretos pra evitar caracteres quebrados no banco

Ver no WHMCS

Como configurar o charset e collation corretos pra evitar caracteres quebrados no banco

Oi! Aqui é a Sensei da GeHost 🌸 Se você já abriu seu site e viu aquelas letras estranhas tipo "Ação" no lugar de "Ação", ou um monte de "?" onde deveria ter acento, calma — isso quase sempre é um problema de charset (codificação de caracteres) e collation (regra de ordenação/comparação de texto) desalinhados entre o banco de dados, a tabela e a sua aplicação. Vou te guiar com calma pra deixar tudo certinho.

Entendendo rapidinho o que é isso

Pensa assim: o charset é o "alfabeto" que o banco usa pra guardar cada caractere (letras, acentos, emojis...). A collation é a regra de como esses caracteres são comparados e ordenados. Quando o site grava texto usando um charset e o banco espera outro, o resultado são aqueles símbolos quebrados — isso é chamado de mojibake.

Dica de ouro da Sensei: hoje em dia, a recomendação praticamente universal é usar utf8mb4 com collation utf8mb4_unicode_ci (ou utf8mb4_general_ci, dependendo do seu sistema). O utf8mb4 é o único que suporta corretamente acentos, caracteres especiais e até emojis, sem cortar nem quebrar nada.

Passo 1 — Verifique o charset do banco no cPanel

  1. Acesse o cPanel da sua hospedagem com seu usuário e senha (o link de acesso e os dados ficam disponíveis no seu painel do cliente, em painel.gehost.com.br).
  2. No painel do cPanel, procure a seção de banco de dados e clique em "Bancos de Dados MySQL".
  3. Localize o banco do seu site na lista.
Tela de Bancos de Dados MySQL no cPanel, com opções de criar banco e gerenciar usuários

Se você usa phpMyAdmin (também acessível pelo cPanel), pode conferir o charset atual de cada tabela clicando no banco → aba "Estrutura". Ali aparece uma coluna com o charset/collation de cada tabela.

Passo 2 — Ajuste o charset e collation das tabelas

  1. Dentro do phpMyAdmin, selecione o seu banco de dados.
  2. Vá em "Estrutura" e marque as tabelas que quer corrigir (ou todas).
  3. No menu de ações em massa, procure a opção "Alterar collation" (ou "Change collation").
  4. Escolha utf8mb4_unicode_ci e confirme.

Se preferir via SQL, pode rodar um comando assim direto na aba "SQL" do phpMyAdmin (troque nome_da_tabela pelo nome real):

  • ALTER TABLE nome_da_tabela CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
Atenção, com carinho: antes de alterar o charset de tabelas que já têm dados, faça um backup! No cPanel tem uma tela própria de "Backup" onde você gera um backup completo ou parcial (do banco, por exemplo) em poucos cliques. Mudança de charset em tabela com dados já gravados pode precisar de cuidado extra pra não gerar nova quebra de acentuação nos textos existentes.

Passo 3 — Confira a conexão da sua aplicação com o banco

De nada adianta o banco estar certinho se a sua aplicação (WordPress, sistema próprio, etc.) conecta usando outro charset. Alguns pontos comuns:

  • WordPress: no arquivo wp-config.php, confira se as linhas DB_CHARSET e DB_COLLATE estão como utf8mb4 e utf8mb4_unicode_ci.
  • Aplicações em PHP puro: logo após conectar no banco (via mysqli ou PDO), garanta que o charset da conexão também está definido como utf8mb4 — normalmente com um comando do tipo SET NAMES utf8mb4 ou o parâmetro equivalente na string de conexão.
  • Formulários HTML: confira se a página tem a tag <meta charset="UTF-8"> no <head> — isso garante que o próprio navegador está enviando o texto no formato certo.

Você pode editar esses arquivos direto pelo "Gerenciador de Arquivos" do cPanel, sem precisar de programas extras.

Passo 4 — Teste antes de comemorar

  1. Depois dos ajustes, cadastre ou edite um conteúdo de teste com acentos, cedilha e algum emoji (ex: "Ação, coração, café ☕").
  2. Veja se ele aparece corretamente tanto no seu site quanto direto no phpMyAdmin.
  3. Se algum texto antigo continuar quebrado mesmo após a mudança de collation, é sinal de que ele já foi gravado de forma incorreta antes do ajuste — nesse caso, pode ser necessário reimportar esse conteúdo específico a partir de uma fonte original ou de um backup anterior ao problema.
Resumindo com carinho: banco em utf8mb4, tabelas em utf8mb4, conexão da aplicação em utf8mb4 e a página HTML também em UTF-8. Quando os quatro estão alinhados, os caracteres quebrados somem de vez.

Ficou com dúvida?

Se mesmo seguindo os passos os caracteres continuarem estranhos, ou se você não tiver certeza de mexer direto no banco, não se preocupe — nossa equipe de suporte pode te ajudar. É só abrir um chamado pelo seu painel do cliente. Estamos aqui torcendo pelo seu site! 💚

Precisa de Ajuda?

Nossa equipe está pronta para resolver suas dúvidas.