PHP html_entity_decode でのエンティティ文字の変換(É→? など)

PHPでHTML中の文字を処理している時に、cafÉ(É(U+00C9)) のような文字をUTF-8の文字列にする必要があるのだが、html_entity_decodeを使ってみたところ、うまくいかない。

テストしてみたところ、

mb_internal_encoding("UTF-8");
$src="CAFÉ";
$dest = html_entity_decode($src);
-> result CAFノ

$dest = html_entity_decode($src,ENT_NOQUOTES,'ISO-8859-1');
-> CAFノ

$dest = html_entity_decode($src,ENT_NOQUOTES,'ISO-8859-15');
-> CAFノ

$dest = html_entity_decode($src,ENT_NOQUOTES,'UTF-8');
-> CAFÉ

どうやら、明示的にUTF-8を指定する必要があるようだ。

PHP: html_entity_decode - Manual PHP: html_entity_decode - Manual

のcharsetの説明文ではよく分からなかったが、たぶん、É -> charsetの文字にするということなのかな。。。