Debería funcionar también con los acentos. Probá indicando también el juego de caracteres:
Código PHP:
<?
$texto = 'Hola sóy "Michael"';
$texto2 = substr(html_entity_decode($texto,ENT_QUOTES,"ISO-8859-1"),0,12);
$texto_cortado = htmlentities($texto2);
echo $texto_cortado; // Imprime Hola sóy "Mi
?>
Saludos.