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
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>
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!