Maison >développement back-end >tutoriel php >Pourquoi mon PHP DOMDocument::loadHTML() ne gère-t-il pas correctement UTF-8 ?
PHP DOMDocument loadHTML n'encode pas correctement l'UTF-8
Problème :
Lors de l'analyse HTML avec DOMDocument::loadHTML() de PHP, les caractères UTF-8 ne sont pas interprétés correctement, conduisant à une sortie déformée.
Cause :
DOMDocument suppose que la chaîne d'entrée est en codage ISO-8859-1 par défaut. Cependant, UTF-8 est couramment utilisé en HTML5. Lors du chargement de chaînes UTF-8 sans spécifier l'encodage, DOMDocument les interprète mal.
Solution :
Pour résoudre ce problème, vous devez spécifier l'encodage correct pour l'entrée chaîne. Vous disposez de plusieurs options :
Exemple :
Ce code illustre l'utilisation de la fonction mb_encode_numericentity() :
$profile = '<p>イリノイ州シカゴにて、アイルランド系の家庭に</p>'; $dom = new DOMDocument(); $dom->loadHTML(mb_encode_numericentity($profile, [0x80, 0x10FFFF, 0, ~0], 'UTF-8')); echo $dom->saveHTML();
En utilisant ces techniques, vous pouvez vous assurer que les caractères UTF-8 sont analysés et affichés correctement dans votre PHP DOMDocument.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!