Décodage des erreurs XML à l'aide de SimpleXML_Load_String de PHP
En PHP, l'utilisation de la fonction simplexml_load_string pour traiter les réponses XML peut parfois conduire à l'erreur : "Entrée n'est pas UTF-8 approprié, indiquez l'encodage !" Bien que le XML déclare un encodage UTF-8, il peut contenir des caractères non UTF-8, en particulier lorsqu'il s'agit de langues comme l'espagnol.
Correction des incompatibilités d'encodage
Pour Pour résoudre ce problème, plusieurs stratégies peuvent être utilisées :
Prétraitez le XML :
Détection de l'encodage correct
Malheureusement, PHP ne fournit pas de méthode définitive pour détecter automatiquement l'encodage correct d'un fichier XML.
Correction partielle
En tant que solution temporaire, la fonction suivante peut être utilisée pour résoudre partiellement les problèmes courants d'encodage Latin-1 dans UTF-8 :
function fix_latin1_mangled_with_utf8_maybe_hopefully_most_of_the_time($str) { return preg_replace_callback('#[\xA1-\xFF](?![\x80-\xBF]{2,})#', 'utf8_encode_callback', $str); } function utf8_encode_callback($m) { return utf8_encode($m[0]); }
Gardez à l’esprit que ce correctif n’est pas exhaustif et peut ne pas résoudre toutes les divergences d’encodage.
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!