これは、 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 />";
?>
特殊文字を含まない文字列では誤った結果が得られる可能性がありますが、それは問題ではありません。