Това може да е работа за mb_detect_encoding()
функция.
Според моя ограничен опит с него, той не е 100% надежден, когато се използва като общ "кодиращ снифер" - Той проверява наличието на определени знаци и стойности на байтове, за да направи обосновано предположение - но в този тесен случай (ще трябва да прави разлика само между UTF-8 и ISO-8859-1 ) трябва работа.
<?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 />";
?>
може да получите неправилни резултати за низове, които не съдържат специални символи, но това не е проблем.