ok, ho trovato il problema, grazie mille! non conoscendo JS non avevo pensato ai maledetti apici singoli, e tra variabile js passata da 'rte1', MySQL e l'estrazione di php si riempiva di schifezze la stringa..
ho risolto così, lo posto che magari serve a qualcuno:

quando salvo nel db la stringa utilizzo:
$testo_campagna=stripslashes(str_replace("\"", "'", $_POST['rte1']));
$testo_campagna=str_replace ("\r\n", "
",$testo_campagna);
e faccio l'INSERT in MySQL

quando faccio l'estrazione da db per passare il dato a rte1 per la modifica utilizzo:
$testo_area=str_replace ("\r", "
",$row_campagna['testo']);
$testo_area=str_replace("\n", "
",$testo_area);
$testo_area= str_replace("'",'\"',$testo_area);

non l'ho testato molto ma dovrebbe funzionare, al massimo ci sono da fare un paio di piccoli controlli ulteriori in php

grazie ancora ciao!