Confermo,
con htmlspecialchars visualizza tutto. Solo che i tag, ad esempio <h2>, vengono visualizzati come testo e, appunto, non come tag.
Dunque, faccio un esempio per capire se ho capito bene: se in una stringa viene aperto un tag <h2> e la chiusura </h2> di trova oltre il carattere 250 va tutto in casino, giusto?
Ho diverse soluzioni in mente, ma tutte complesse.
La più facile potrebbe essere quella di inserire uno <span style="display:hidden;"> nella posizione 250 e un </span> a fine testo. Potrebbe andare? Hai soluzioni più semplici?