2016-03-25 10 views
4

Ich habe einige Daten, die ich mit DomCrawler sammle und in einem Array ablege, aber es sieht so aus, als ob er bei Sonderzeichen wie è, à, ï, etc versagt.PHP Wie man Strings von DomCrawler in UTF-8 konvertiert

Als Beispiel bekomme ich è statt è, wenn ich das Ergebnis echo.

Wenn ich meine Ergebnisse in einer .json-Datei speichern, bekomme ich diese: \u00c3\u00a8 Mein Ziel ist es, das Sonderzeichen in der .json-Datei zu speichern.

Ich habe versucht, es zu kodieren, aber scheint nicht das gewünschte Ergebnis zu haben.

$html = file_get_contents($url); 
$crawler = new Crawler($html); 

$h1 = $crawler->filter('h1'); 
$title = $h1->text(); 
$title = mb_convert_encoding($title, "HTML-ENTITIES", "UTF-8"); 

Gibt es trotzdem kann ich meine Sonderzeichen gezeigt haben?

Vielen Dank!

Antwort

0

Mithilfe des Konstruktors zum Hinzufügen von HTML geht der Crawler davon aus, dass er sich in ISO-8859-1 befindet. Sie müssen es ausdrücklich sagen, dass Ihr DOM in UTF-8 mit dem addHTMLContent Methode ist:

$html = file_get_contents($url); 
$crawler = new Crawler; 
$crawler->addHTMLContent($html, 'UTF-8'); 
+0

ich Ihre Antwort versucht habe und ich immer noch '\ u00e8' in meinem json, leider. –

+0

@FrankLucas Versuchen Sie das zweite Argument des 'addHTMLContent' zu ändern, vielleicht mit ISO-8859-1? –

+0

@ ThomsMauduit-Blin alles bleibt gleich :( –

Verwandte Themen