Heim >Backend-Entwicklung >PHP-Tutorial >Warum verfälscht „file_get_contents()' UTF-8-Zeichen und wie kann ich das beheben?
file_get_contents() verzerrt UTF-8-Zeichen: Eine Auflösung
Beim Laden von HTML aus externen Quellen mit UTF-8-Kodierung wird file_get_contents() kann Zeichen verfälschen, was zu einer falschen Darstellung von „特殊字符“ führt. Um dieses Problem zu beheben:
Kodierungseinstellungen prüfen:
Stellen Sie sicher, dass der Remote-Server den HTML-Code in der richtigen UTF-8-Kodierung bereitstellt. Überprüfen Sie den Content-Type-Header, um die vom Server deklarierte Codierung zu bestätigen.
Codierung auf native PHP-Funktionen anwenden:
In einigen Fällen muss die Codierung in PHP manuell angegeben werden Funktionen können das Problem beheben. Verwenden Sie die Funktion mb_detect_encoding(), um die Kodierung des zurückgegebenen Inhalts zu identifizieren, und verwenden Sie dann mb_convert_encoding() oder iconv(), um ihn in die gewünschte Kodierung (z. B. UTF-8) zu konvertieren.
$html = mb_convert_encoding($html, 'UTF-8', mb_detect_encoding($html, 'UTF-8', true));
Erwägen Sie HTML-Entitäten:
Wenn die Zeichen immer noch verzerrt sind, sollten Sie eine Konvertierung in HTML in Betracht ziehen Entitäten. Dies kann mit htmlentities() erfolgen.
$html = htmlentities($html, ENT_QUOTES, 'UTF-8');
Beispiel:
Das folgende Beispiel zeigt, wie man HTML mit UTF-8-Zeichen lädt und in HTML konvertiert Entitäten:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Test</title> </head> <body> <?php $html = file_get_contents('http://example.com'); echo htmlentities($html); ?> </body> </html>
Das obige ist der detaillierte Inhalt vonWarum verfälscht „file_get_contents()' UTF-8-Zeichen und wie kann ich das beheben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!