Problemas con DOMDocument y UTF-8

Hace unas semanas publiqué un artículo en el que explicaba cómo utilizar DOMDocument para modificar un HTML con PHP, en cuya práctica editaba las urls para cambiarlas de http:// a https://. Al seguir practicando con DOMDocument se me presentó un problema difícil y agobiante que es increíblemente fácil de resolver...pero con un efecto colateral que me tomó un tiempo detectar: los caracteres UTF-8 estaban siendo transformados a otro conjunto de caracteres. Yo estaba viendo un montón de personajes extraños como "ãç³" y "» ã®é " en el contenido de mi página web. Yo, sabedor de que los errores de codificación son la peor pesadilla para el programador, me eché a temblar. Tragué saliva y me puse a revisar el código DOM, ya que era el añadido más reciente... Por lo menos, podía señalar a un culpable. Hay veces que ni eso...

Como os iba contando, yo sabía que el problema tenía origen durante el parseo de DOMDocument y que tenía que encontrar una solución rápidamente. Por suerte, la solución llegó con unas simples líneas de código:

// Creamos la instancia a DOMDocument
$doc = new DOMDocument();

// Aplicamos la conversión con mb_convert_encoding
$doc->loadHTML(mb_convert_encoding($content, 'HTML-ENTITIES', 'UTF-8'));

Después de establecer el juego de caracteres con mb_convert_encoding, los personajes extraños se desvanecieron y los caracteres volvieron a su lugar de origen. ¡Uf! Menos mal porque como os he dicho antes, los errores de codificación suelen ser muy puñeteros y difíciles de detectar.

Y este ha sido el tutorial sobre cómo resolver problemas de codificación al parsear con DOMDocument, esperamos que te haya gustado y sepas aplicarlo en tus futuros proyectos. Ya sabes que si nos quieres proponer un tema que quieres ver reflejado como un tutorial o como una práctica, solo tienes que hacer uso del área de comentarios de un poco más abajo. Por el contrario, si quieres enviarnos tus propios tutoriales, puedes hacerlo a través de la intranet de usuarios que está habilitada para ello, a través del menú Enviar Tutorial. Ya sabes, ayúdanos a crecer con tus conocimientos. ¡Un saludo y feliz código!

COMPARTE ESTE ARTÍCULO

COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN LINKEDIN
COMPARTIR EN WHATSAPP
SIGUIENTE ARTÍCULO