setta il charset delle tabelle a utf-8, aggiungi
Codice PHP:
AddDefaultCharset utf-8
php_value default_charset utf
-
all'.htaccess e usa il più possibile htmlentities, qui trovi una funzione senza problemi di encoding tipici di htmlentities:
http://forum.html.it/forum/showthrea...0#post11904210

se vuoi permettere l'html basta che modifichi la funzione così:
Codice PHP:
function utf8_htmlentities($str){ 
    return 
call_user_func_array('mb_convert_encoding',$str,'HTML-ENTITIES','UTF-8')); 

Edit: maledetto IE8 che invia i post anche quando premi invio in una textarea

Per il resto gianiaz ti ha già spiegato tutto.