Como corrigir erro de charset no banco de dados
Perguntas frequentes
Por que os acentos do meu site viraram é e ã?
Isso é texto utf8mb4 lido como se fosse latin1. A tabela ou a conexão está num charset que não bate com o conteúdo gravado. Alinhar DB_CHARSET para utf8mb4 e converter as tabelas para o mesmo charset corrige a exibição do texto novo.
Qual a diferença entre utf8 e utf8mb4 no WordPress?
O antigo utf8 do MySQL guarda no máximo 3 bytes por caractere e não cobre emojis nem alguns símbolos. O utf8mb4 usa até 4 bytes e suporta tudo. O WordPress moderno adota utf8mb4 por padrão, então é o charset recomendado para o banco.
Converter o charset recupera o texto já corrompido?
Não necessariamente. Se o texto foi gravado com codificação errada antes da migração, a conversão não o restaura sozinha. O caminho seguro é reimportar um dump exportado corretamente em utf8mb4 a partir de um backup íntegro.
Preciso mexer no wp-config.php?
Sim, confirme DB_CHARSET como utf8mb4 e deixe DB_COLLATE vazio. Se o wp-config fala um charset e as tabelas estão em outro, a conexão negocia a codificação errada e o texto continua aparecendo trocado mesmo após converter as tabelas.
O erro de charset pode aparecer só em emojis?
Sim. Se as tabelas estão no antigo utf8 de 3 bytes, acentos comuns funcionam, mas emojis de 4 bytes somem ou viram o losango com interrogação ao salvar. Migrar o banco para utf8mb4 resolve, porque ele suporta caracteres de 4 bytes.
Como confirmo o charset que a conexão está usando?
No phpMyAdmin, abra a aba SQL e rode SHOW VARIABLES LIKE 'character_set%'. A saída mostra o charset do cliente, da conexão e do servidor, permitindo comparar com o charset físico das tabelas e achar a divergência.














