Problemas de codificación DOMDocument / caracteres transformados

Estoy usando DOMDocument para manipular / modificar HTML antes de que salga a la página. Esto es solo un fragmento html, no una página completa. Mi problema inicial fue que todos los caracteres franceses se desordenaron, lo que pude corregir después de una prueba y error. Ahora, parece que solo queda un problema: ¿el personaje se transforma en? .

El código :

<?php
    $dom = new DOMDocument('1.0','utf-8');
         $dom->loadHTML(utf8_decode($row->text));

         //Some pretty basic modification here, not even related to text

         //reinsert HTML, and make sure to remove DOCTYPE, html and body that get added auto.
         $row->text = utf8_encode(preg_replace('/^<!DOCTYPE.+?>/', '', str_replace( array('<html>', '</html>', '<body>', '</body>'), array('', '', '', ''), $dom->saveHTML())));
?>

Sé que se está complicando con la decodificación / codificación utf8, pero esta es la única forma en que podría hacer que funcione hasta ahora. Aquí hay una cadena de muestra:

Entrada: Sans doute parce qu’il vient d’atteindre une date déterminante dans son spectaculaire cheminement

Salida: Sans doute parce qu? Il vient d? Atteindre une date déterminante dans son spectaculaire cheminement

Si encuentro más detalles, los agregaré. ¡Gracias por tu tiempo y apoyo!

Respuestas a la pregunta(4)

Su respuesta a la pregunta