file_get_contents() unterbricht UTF-8-Zeichen
Das Problem tritt auf, wenn HTML von einem externen Server mit UTF-8-Kodierung geladen wird. Zeichen wie ľ, š, č, ť, ž werden beschädigt und durch ungültige Zeichen ersetzt.
Die Wurzel des Problems
Die Funktion file_get_contents() kann auftreten Codierungsprobleme. Standardmäßig werden die Daten als ASCII interpretiert, wodurch UTF-8-Zeichen nicht korrekt verarbeitet werden können.
Vorgeschlagene Lösung
Um dieses Problem zu beheben, sollten Sie die Verwendung einer alternativen Kodierungsmethode in Betracht ziehen .
1. Manuelle Kodierungskonvertierung
Verwenden Sie die Funktion mb_convert_encoding(), um den abgerufenen HTML-Code in UTF-8 zu konvertieren:
$html = file_get_contents('http://example.com/foreign.html'); $utf8_html = mb_convert_encoding($html, 'UTF-8', mb_detect_encoding($html, 'UTF-8', true));
2. Ausgabekodierung
Stellen Sie sicher, dass die Ausgabe ordnungsgemäß kodiert ist, indem Sie dem Skript die folgende Zeile hinzufügen:
header('Content-Type: text/html; charset=UTF-8');
3. HTML-Entitätskonvertierung
Konvertieren Sie das abgerufene HTML in HTML-Entitäten, bevor Sie es ausgeben:
$html = file_get_contents('http://example.com/foreign.html'); $html_entities = htmlentities($html, ENT_COMPAT, 'UTF-8'); echo $html_entities;
4. JSON-Dekodierung
Wenn das externe HTML als JSON gespeichert ist, dekodieren Sie es mit der JSON-Klasse:
$json = file_get_contents('http://example.com/foreign.html'); $decoded_json = json_decode($json, true); $html = $decoded_json['html'];
Durch die Verwendung dieser Techniken können Sie die durch file_get_contents verursachten Kodierungsprobleme umgehen () und stellen Sie die korrekte Anzeige von UTF-8-Zeichen sicher.
Das obige ist der detaillierte Inhalt vonWarum sind UTF-8-Zeichen bei Verwendung von „file_get_contents()' beschädigt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!