Muy buenas a todos. Mi nombre es Juan, aunque en Internet la gente me conoce como GatoVolador. Llevo un par de blogs con WordPress e intento colaborar en otros tantos, pero no me da tiempo para todo. Francisco me ha invitado a participar en TodoWordPress, y empezaré contando cómo resolví un problema que tuve hace unos días mudando de servidor uno de los blogs que gestiono.

Hice el traslado siguiendo más o menos estos pasos, pero cuando en principio, tras propagarse las nuevas DNS, todo debía funcionar perfectamente, me llevé un chasco: los posts aparecían sin caracteres con acentos ni especiales (como la ñ o los ordinales º y ª). En su lugar aparecían símbolos como ~ o Â. Esto sucedía sólo en los posts y en el nombre y descripción de las categorías (aunque de esto me di cuenta más tarde).

Tras maldecir mi antiguo servidor por guardar de forma tan extraña el backup de la base de datos, mi primera reacción fue buscar en Google. Muchos sugerían dejar el parámetro DB_CHARSET del wp-config.php así, sin definir:

define('DB_CHARSET', '');

Lo probé y el problema cambió por otro: las entradas se veían correctamente pero no así los comentarios. Me sucedió algo similar cuando elegí ISO-8859-1 o Latin 1:

define('DB_CHARSET', 'iso-8859-1');
define('DB_CHARSET', 'latin1');

Tras mucho leer, me dí cuenta de que UTF-8 es el estándar “de facto” así que decidí volver a dejar el parámetro DB_CHARSET como estaba al principio…

define('DB_CHARSET', 'utf8');

…y atacar por otro lado. Me puse a ver la codificación de las tablas con phpMyAdmin. Todas estaban supuestamente guardadas en UTF-8, pero eso fallaba por algún lado. Viendo que no llegaba a ninguna parte, busqué el backup de la base de datos y dejé sólo la tabla wp_posts. Como uso Windows, guardé el .SQL en diferentes codificaciones con los editores Notepad y WordPad, sin resultado e incluso empeorando la cosa puesto que en un momento dado se duplicaron los caracteres extraños que sustituían a los latinos. Siempre que abría la base de datos con esos editores, aparecían los malditos caracteres extraños.

Finalmente, ya por desesperación, abrí el archivo SQL con Microsoft Word, que me preguntó la codificación del archivo sugiriendo que era UTF-8. Acepté y para mi sorpresa todas las vocales con acento aparecían con él y los caracteres extraños se mostraban correctamente. Copié toda la tabla wp_posts, la pegué en Wordpad y la guardé como documento de texto simple, no como documento MS-DOS ni como documento Unicode. Mi alegría fue enorme al ver que, tras subirla con el phpMyAdmin, todos los acentos se mostraban perfectamente en el blog.

Finalmente, revisando para asegurarme de que todo estuviera en su sitio, vi que las categorías adolecían del mismo fallo con acentos y caracteres especiales. Como tengo pocas categorías, edité su nombre y descripción manualmente, pero en el caso de que fueran muchas, supongo que se podría arreglar haciendo lo mismo que hice con la tabla wp_posts, pero con la wp_term_taxonomy. Esa tabla es la que contiene los datos de las categorías.