К сожалению, htmlentities будет кодировать только те символы, которые имеют именованный объект. Чтобы преобразовать все остальное в числовой объект, вы можете использовать mb_encode_numericentities
. Например,
$string = mb_encode_numericentity(htmlentities($string, ENT_QUOTES, 'UTF-8'), array (0x80, 0xffff, 0, 0xffff), 'UTF-8');