Comment résoudre l'erreur « L'entrée n'est pas appropriée UTF-8 » dans simplexml_load_string de PHP avec XML ?

Mary-Kate Olsen
Libérer: 2024-10-24 07:13:02
original
623 Les gens l'ont consulté

How to Resolve

Gestion des encodages UTF-8 non valides lors du chargement de XML à l'aide de simplexml_load_string en PHP

Lors du traitement des réponses XML provenant de sources externes, vous pouvez rencontrer l'erreur : "L'entrée n'est pas correcte UTF-8, indiquez l'encodage !" causé par des écarts entre l'encodage déclaré et le contenu réel.

Identification du problème

Vérifiez le contenu XML par rapport à l'encodage déclaré. S'il ne s'agit vraiment pas d'UTF-8, vous devez trouver une solution pour pré-traiter et corriger les incompatibilités d'encodage.

Options de pré-traitement

  • utf8_encode() : Utilisez cette fonction pour potentiellement résoudre le problème, mais elle peut introduire mojibake si le XML contient à la fois de l'UTF-8 valide et d'autres jeux de caractères.
  • iconv() ou mbstring : Tentative de conversion de la chaîne UTF-8 en UTF-8, en ignorant les caractères non valides.

Validation et correction manuelles

Ceci Cette approche nécessite une connaissance de l'UTF-8 et est complexe mais permet des correctifs précis.

Solution partielle

Pour une solution de contournement temporaire, envisagez d'utiliser la fonction fournie ci-dessous pour corriger certains des problèmes d'encodage :

<code class="php">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]);
}</code>
Copier après la connexion

Bonne pratique

Informez le fournisseur de données de l'encodage invalide pour demander un correctif permanent. Une gestion appropriée du codage des caractères garantit l'interopérabilité et évite tout comportement inattendu.

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!

source:php
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!