Caracteres especiales en WordPress UTF-8
Tengo un problema con los caracteres especiales que aparecen mal en el front-end. Principalmente se convierten en signos de interrogación o algo como �?).
Ejemplo - Frédèric se convierte en Fr�d�ric.
Algunos hechos que me tienen desconcertado:
Esta instalación de WordPress está en una máquina LOCAL y comparte el servidor con al menos otras 40 instalaciones - ninguna de las cuales tiene este problema.
Esta instalación de WordPress también comparte la misma base de datos que las demás.
Mi archivo wp-config tiene definido el collate y charset.
La base de datos parece estar bien, porque cuando veo la publicación en el EDITOR (back end) - todo es correcto, el problema solo está en el FRONT end.
- La base de datos parece estar bien (2), abriendo la publicación en phpMyAdmin y verificando el valor directo - todos los caracteres están bien.
Este problema NO es de codificación del navegador/os, se verificó en 4 máquinas diferentes, 3 sistemas operativos y 9 navegadores.
He probado todas las soluciones que conozco por experiencia previa, que incluyen:
- Verificar el wp-config (está bien, utf-8 definido, collate ok)
- Verificar la base de datos - todo UTF-8
- Verificar mi header
(<?php bloginfo('charset'); ?>
) - eso se renderiza correctamente como utf-8 con marcado válido. - Abrir todos los archivos del tema en mi editor, convertir la codificación a UTF-8 sin bom y guardar.
¿Me faltó algo? ¿Alguna idea?
Editar:
¿Tienes <meta charset="utf-8" />
en tu etiqueta <head>
? Un usuario aquí resolvió un problema similar con la codificación de caracteres añadiendo esto.
De hecho, hay muchos resultados en Google que aparecen al buscar utf-8 character encoding in wordpress
.
Además, ¿hace alguna diferencia pegar el texto en la vista HTML del editor y guardarlo?
Lo siguiente no es una idea tan buena como @toscho explicó en los comentarios.
No estoy seguro si este es el mejor método para solucionar el problema, pero esto funcionó para uno de los sitios web de mis clientes.
Encuentra estas dos líneas en tu archivo wp-config.php
:
define('DB_CHARSET', 'utf8');
define('DB_COLLATE', '');
Y coméntalas así:
//define('DB_CHARSET', 'utf8');
//define('DB_COLLATE', '');

Ahora corres el riesgo de obtener codificaciones guardadas mezcladas. No es una buena idea.

@toscho Correcto, estoy buscando en la web una mejor solución y actualizaré mi respuesta pronto.
