Może to być zadanie dla mb_detect_encoding()
funkcja.
Z mojego ograniczonego doświadczenia z nim wynika, że nie jest w 100% niezawodny, gdy jest używany jako rodzajowy „sniffer kodujący” — sprawdza obecność pewnych znaków i wartości bajtów, aby zgadywać — ale w tym wąskim przypadku (musi rozróżnić tylko UTF-8 i ISO-8859-1 ) powinno praca.
<?php
$text = $entity['Entity']['title'];
echo 'Original : ', $text."<br />";
$enc = mb_detect_encoding($text, "UTF-8,ISO-8859-1");
echo 'Detected encoding '.$enc."<br />";
echo 'Fixed result: '.iconv($enc, "UTF-8", $text)."<br />";
?>
możesz otrzymać nieprawidłowe wyniki dla ciągów, które nie zawierają znaków specjalnych, ale to nie jest problem.