Heim >Backend-Entwicklung >PHP-Tutorial >Wie kann ich die Beschädigung von UTF-8-Zeichen bei Verwendung von file_get_contents() beheben?

Wie kann ich die Beschädigung von UTF-8-Zeichen bei Verwendung von file_get_contents() beheben?

Barbara Streisand
Barbara StreisandOriginal
2024-12-04 16:19:16265Durchsuche

How Can I Fix UTF-8 Character Corruption When Using file_get_contents()?

file_get_contents() Beschädigung von UTF-8-Zeichen: Eine Lösung

Bei Verwendung von file_get_contents() zum Abrufen von HTML-Inhalten mit UTF-8-Kodierung können Benutzer auf ein Problem stoßen, bei dem Sonderzeichen wie ľ, š, č und ž falsch gerendert werden. Dies führt dazu, dass stattdessen Kauderwelschzeichen wie Å, ¾ und ¤ angezeigt werden.

Das Problem liegt in der von file_get_contents() verwendeten Standardkodierung. Um es aufzulösen, kann man im Funktionsaufruf explizit die gewünschte Kodierung angeben. Allerdings erweist sich auch das Speichern des abgerufenen HTML-Codes in einer Datei und das Drucken mit UTF-8-Codierung als unwirksam, was darauf hindeutet, dass die fehlerhaften Daten aus der Quelle selbst abgerufen werden.

Eine Lösung, die sich als erfolgreich erwiesen hat, ist die Durchführung eines Multi -Byte-Konvertierung der abgerufenen HTML-Zeichenfolge. Hier sind die Schritte:

  1. Ermitteln Sie die aktuelle Codierung des HTML-Strings mit mb_detect_encoding($html, 'UTF-8', true).
  2. Konvertieren Sie den String in UTF- 8 mit mb_convert_encoding($html, 'UTF-8', mb_detect_encoding($html, 'UTF-8', true)).
  3. Zuletzt konvertieren Sie die UTF-8-Zeichenfolge mit mb_convert_encoding($html, 'HTML-ENTITIES', 'UTF-8') in HTML-Entitäten.

Von Wenn Sie diese Schritte ausführen, wird die abgerufene HTML-Zeichenfolge ordnungsgemäß konvertiert, sodass UTF-8-Zeichen korrekt angezeigt werden können.

Das obige ist der detaillierte Inhalt vonWie kann ich die Beschädigung von UTF-8-Zeichen bei Verwendung von file_get_contents() beheben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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