Bueno, encontre algo en el manual sobre las ñ y el substr. Sin embargo, no me funciona:
http://php.net/manual/es/function.substr.php
Código PHP:
Ver originalSimple UTF-8 Multibyte solution (without mb_substr)
<?php
$string="texto en español";
echo substr($string,0,14); //Outputs: texto en espa� ?>
<?php
$string="texto en español";
?>
Me sigue saliendo la cajita, aun jugando con otras combinaciones de encode y decode.