Wie behebe ich den Fehler „Eingabe ist nicht korrekt UTF-8' in PHPs simplexml_load_string mit XML?

Mary-Kate Olsen
Freigeben: 2024-10-24 07:13:02
Original
686 Leute haben es durchsucht

How to Resolve

Umgang mit ungültigen UTF-8-Kodierungen beim Laden von XML mithilfe von simplexml_load_string in PHP

Bei der Verarbeitung von XML-Antworten aus externen Quellen kann der Fehler auftreten : „Die Eingabe ist nicht korrekt UTF-8, Codierung angeben!“ verursacht durch Diskrepanzen zwischen der deklarierten Kodierung und dem tatsächlichen Inhalt.

Identifizieren des Problems

Überprüfen Sie den XML-Inhalt anhand der deklarierten Kodierung. Wenn es wirklich nicht UTF-8 ist, müssen Sie eine Lösung zur Vorverarbeitung und Korrektur der Codierungsinkompatibilitäten finden.

Vorverarbeitungsoptionen

  • utf8_encode(): Verwenden Sie diese Funktion, um das Problem möglicherweise zu beheben, sie kann jedoch Mojibake einführen, wenn das XML sowohl gültiges UTF-8 als auch andere Zeichensätze enthält.
  • iconv() oder mbstring:Versuchen Sie, die Zeichenfolge von UTF-8 in UTF-8 zu konvertieren und ignorieren Sie dabei ungültige Zeichen.

Manuelle Validierung und Korrektur

Dies Der Ansatz erfordert UTF-8-Kenntnisse und ist komplex, ermöglicht aber präzise Korrekturen.

Teillösung

Für eine vorübergehende Problemumgehung sollten Sie die unten bereitgestellte Funktion verwenden, um einige zu beheben der Codierungsprobleme:

<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>
Nach dem Login kopieren

Best Practice

Benachrichtigen Sie den Datenanbieter über die ungültige Codierung, um eine dauerhafte Lösung anzufordern. Der richtige Umgang mit der Zeichenkodierung stellt die Interoperabilität sicher und verhindert unerwartetes Verhalten.

Das obige ist der detaillierte Inhalt vonWie behebe ich den Fehler „Eingabe ist nicht korrekt UTF-8' in PHPs simplexml_load_string mit XML?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage