XML-Fehler mit SimpleXML_Load_String von PHP dekodieren
In PHP kann die Verwendung der Funktion simplexml_load_string zum Verarbeiten von XML-Antworten manchmal zu dem Fehler führen: „Eingabe ist kein korrektes UTF-8, geben Sie die Codierung an!“ Obwohl das XML eine UTF-8-Kodierung deklariert, kann es Nicht-UTF-8-Zeichen enthalten, insbesondere wenn es sich um Sprachen wie Spanisch handelt.
Codierungsinkompatibilitäten beheben
An Um dieses Problem zu beheben, können mehrere Strategien angewendet werden:
XML vorverarbeiten:
Erkennen der korrekten Kodierung
Leider bietet PHP keine definitive Methode, um die korrekte Kodierung einer XML-Datei automatisch zu erkennen.
Teilweise Korrektur
Als vorübergehende Lösung kann die folgende Funktion verwendet werden, um häufige Latin-1-Kodierungsprobleme in UTF-8 teilweise zu beheben:
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]); }
Beachten Sie, dass dieser Fix nicht umfassend ist und möglicherweise nicht alle Codierungsdiskrepanzen behebt.
Das obige ist der detaillierte Inhalt vonWie behebe ich den Fehler „Eingabe ist nicht korrekt UTF-8' in PHPs SimpleXML_Load_String?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!