Non basta tagliare la stringa PRIMA di convertire i caratteri scusa?
Se non puoi puoi prima riconvertire le entities in caratteri normali, tagliare la stringa e ri-riconvertire i caratteri speciali con le entities.
Codice PHP:
$string "Questo quà è il testo di prova";
$string html_entity_decode($string);
$string substr($string015);
$string htmlentities($string);