ciao,
le textarea creano testo non formattato con il charset indicato nella tua pagina. Questo, ovviamente, non è HTML, quindi devi essere tu a formattarlo quando viene spedito al server.
Se utilizzi PHP puoi utilizzare la funzione htmlentities($tuo_testo, ENT_QUOTES, 'UTF-8'), se vuoi trasformare tutti i caratteri UTF-8 (è,à,ò, etc) nelle corrispondenti HTML ENTITIES (è à etc). Per l'a capo la cosa è diversa, perché lo \n non viene indicato come "a capo" da questa funzione, quindi devi essere tu, a trasformarlo in
.
Ma qui viene il bello: windows non utilizza \n per indicare l'a capo, ma \r\n, inoltre, Mac OS X ha nel suoi charset (Mac Roman, mi sembra) il \r come a capo.
La cosa migliore, è utilizzare una serie di search&replace server side (tipo str_replace di PHP), in questo modo:
Codice PHP:
$txt; //Metti che qui ci sia il testo passato dalla textarea
$txt = htmlentities($txt, ENT_QUOTES, 'UTF-8');
$txt = str_replace('\r\n', "
", $txt);
$txt = str_replace('\r', "
", $txt);
$txt = str_replace('\n', "
", $txt);
Ora in $txt c'è solo carattere formattato in HTML Entities, con gli a capo nel posto giusto.