Umgang mit Codierungsfehlern mit SimpleXML
Die Meldung „Eingabe ist nicht korrekt UTF-8, Codierung angeben!“ Bei der Verarbeitung von XML-Daten mit der Funktion simplexml_load_string von PHP tritt ein Fehler auf. Dies deutet darauf hin, dass der XML-Inhalt nicht ordnungsgemäß in UTF-8 codiert ist.
Erkennung falscher Codierung
Die Hauptursache für diesen Fehler kann eine nicht übereinstimmende Codierung zwischen XML sein Inhalt und die PHP-Umgebung. So bestimmen Sie die richtige Kodierung:
Vorverarbeitung des XML
Um dieses Problem zu beheben, ziehen Sie die folgenden Methoden in Betracht:
Teilweise Korrektur mithilfe eines Rückrufs
Als vorübergehende Maßnahme können Sie die folgende Funktion verwenden, um einige fehlerhafte UTF-8-Sequenzen zu reparieren:
<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>
Dauerhafte Lösung
Der beste Ansatz besteht darin, die Kodierung an der Quelle zu korrigieren. Teilen Sie das Problem dem Datenanbieter mit und fordern Sie ihn auf, den XML-Inhalt im richtigen UTF-8 zu kodieren.
Das obige ist der detaillierte Inhalt vonWie behebt man den Fehler „Eingabe ist nicht korrekt UTF-8, Kodierung angeben!' bei der Verwendung von PHP SimpleXML?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!