Se você restaurou seu site WordPress e encontrou palavras como “Decoração” no lugar de “Decoração”, fique tranquilo: o conteúdo não está perdido, e a solução existe.
Este guia cobre todas as etapas, desde correções simples até soluções técnicas definitivas, para qualquer pessoa — com ou sem experiência com banco de dados.
🧠 O que está acontecendo?
Esse erro acontece quando o conteúdo salvo originalmente em UTF-8 (correto) é interpretado como Latin1 (ISO-8859-1) — causando a exibição errada de acentos e caracteres especiais.
Por exemplo:
- Correto:
Decoração
- Corrompido:
Decoração
🔍 Causas comuns
- Migração ou restauração de site com charset incorreto
- Plugin de backup/migração (ex: WPvivid, Duplicator, All-in-One WP Migration)
- Exportação/importação de banco de dados via phpMyAdmin sem definir charset
- Configuração incorreta no
wp-config.php
✅ Soluções passo a passo
🔹 Etapa 1 – Verificar wp-config.php
Acesse o arquivo wp-config.php
e verifique estas linhas:
define('DB_CHARSET', 'utf8');
define('DB_COLLATE', '');
Ou, se estiver usando emojis e caracteres modernos, pode usar:
define('DB_CHARSET', 'utf8mb4');
⚠️ Evite latin1
aqui, pois isso é o que costuma causar problemas de codificação.
🔹 Etapa 2 – Verificar charset das tabelas no banco
Acesse o phpMyAdmin, vá até o seu banco e veja a coluna “Collation”.
O ideal é que todas as tabelas estejam com:
utf8_general_ci
- ou
utf8mb4_general_ci
Se estiverem com latin1_swedish_ci
ou outras variações de latin1
, as chances de erro aumentam.
🔹 Etapa 3 – Reimportar backup corretamente (se ainda tiver)
Se você ainda tiver o arquivo .sql
do banco de dados, faça o seguinte:
- Abra o arquivo em um editor de texto (ex: VS Code, Notepad++)
- Localize uma linha como: sqlCopiarEditar
SET NAMES latin1;
✅ Altere para: sqlCopiarEditarSET NAMES utf8;
- Salve o arquivo como UTF-8 sem BOM
- Reimporte no phpMyAdmin e defina o charset como utf8 no momento da importação
🔹 Etapa 4 – Corrigir um banco já corrompido
Se os dados já estão salvos de forma corrompida, ou seja, o banco contém “Decoração” diretamente, siga esta solução definitiva:
🛠️ Solução definitiva via SQL (avançado, mas eficaz)
🔄 Corrigir campos com texto corrompido:
Este SQL reconverte os textos mal interpretados de volta ao UTF-8 correto:
UPDATE wp_posts
SET post_title = CONVERT(CAST(CONVERT(post_title USING latin1) AS BINARY) USING utf8),
post_content = CONVERT(CAST(CONVERT(post_content USING latin1) AS BINARY) USING utf8);
⚠️ Substitua wp_
pelo prefixo do seu banco de dados (ex: wp9g_
, wp_
, meusite_
, etc.)
🧩 Correção completa (várias tabelas)
Use este script SQL para corrigir todas as tabelas padrão do WordPress:
-- wp_posts
UPDATE wp_posts
SET post_title = CONVERT(CAST(CONVERT(post_title USING latin1) AS BINARY) USING utf8),
post_content = CONVERT(CAST(CONVERT(post_content USING latin1) AS BINARY) USING utf8),
post_excerpt = CONVERT(CAST(CONVERT(post_excerpt USING latin1) AS BINARY) USING utf8),
post_content_filtered = CONVERT(CAST(CONVERT(post_content_filtered USING latin1) AS BINARY) USING utf8);
-- wp_postmeta
UPDATE wp_postmeta
SET meta_value = CONVERT(CAST(CONVERT(meta_value USING latin1) AS BINARY) USING utf8)
WHERE meta_value LIKE '%Ã%';
-- wp_terms
UPDATE wp_terms
SET name = CONVERT(CAST(CONVERT(name USING latin1) AS BINARY) USING utf8),
slug = CONVERT(CAST(CONVERT(slug USING latin1) AS BINARY) USING utf8);
-- wp_term_taxonomy
UPDATE wp_term_taxonomy
SET description = CONVERT(CAST(CONVERT(description USING latin1) AS BINARY) USING utf8)
WHERE description LIKE '%Ã%';
-- wp_termmeta
UPDATE wp_termmeta
SET meta_value = CONVERT(CAST(CONVERT(meta_value USING latin1) AS BINARY) USING utf8)
WHERE meta_value LIKE '%Ã%';
-- wp_options
UPDATE wp_options
SET option_value = CONVERT(CAST(CONVERT(option_value USING latin1) AS BINARY) USING utf8)
WHERE option_value LIKE '%Ã%';
-- wp_users
UPDATE wp_users
SET display_name = CONVERT(CAST(CONVERT(display_name USING latin1) AS BINARY) USING utf8),
user_nicename = CONVERT(CAST(CONVERT(user_nicename USING latin1) AS BINARY) USING utf8);
-- wp_usermeta
UPDATE wp_usermeta
SET meta_value = CONVERT(CAST(CONVERT(meta_value USING latin1) AS BINARY) USING utf8)
WHERE meta_value LIKE '%Ã%';
-- wp_comments
UPDATE wp_comments
SET comment_content = CONVERT(CAST(CONVERT(comment_content USING latin1) AS BINARY) USING utf8),
comment_author = CONVERT(CAST(CONVERT(comment_author USING latin1) AS BINARY) USING utf8);
-- wp_commentmeta
UPDATE wp_commentmeta
SET meta_value = CONVERT(CAST(CONVERT(meta_value USING latin1) AS BINARY) USING utf8)
WHERE meta_value LIKE '%Ã%';
🧪 Testar antes de aplicar (opcional, recomendado)
SELECT post_title,
CONVERT(CAST(CONVERT(post_title USING latin1) AS BINARY) USING utf8) AS corrigido
FROM wp_posts
WHERE post_title LIKE '%Ã%';
✅ Conclusão
Erros como “Decoração” podem parecer sérios, mas geralmente são reversíveis. O segredo está em entender que:
- O conteúdo está salvo corretamente, mas foi mal interpretado
- Reverter a má codificação é possível com SQL ou ferramentas específicas
- Backups são essenciais antes de qualquer operação
💡 Dica extra
Depois da correção, verifique os plugins de migração/restauração que você usa. Certifique-se de que:
- Eles exportam com charset UTF-8
- Você reimporta com charset correto (no phpMyAdmin ou via script)
Se este artigo ajudou, compartilhe com outros usuários que enfrentam esse problema — é mais comum do que parece, e quase sempre tem solução!