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