Lo script ajax è sempre questo:
Codice:
$("#save").click(function(){
var msg = $('#text').val();
$.ajax({
type: "POST",
url: "data.php",
data: "msg="+msg,
dataType: "html",
success: function(save) {
$("#div").html(save);
}
});
});
Prende il valore della textarea con id "text" e lo invia a data.php tramite POST
Questo è il codice PHP che uso in data.php:
Codice PHP:
$message = mysqli_real_escape_string($con, $_POST['msg']);
if(!empty($message)){
mysqli_set_charset($con,"utf8");
mysqli_query($con, "INSERT INTO text (text) VALUES ('$message')");
}
E fin qui tutto ok, mi inserisce le lettere come sono ovvero se scrivo 'à', ne database mi inserisce 'à'.
Questo invece è il codice PHP che uso per estrarre i dati dal database:
Codice PHP:
$gettext = mysqli_fetch_arrray(mysqli_query($con, "SELECT * FROM text WHERE id= '$id' "));
$mex = htmlentities($gettext['text'], ENT_QUOTES, "UTF-8");
$realmessage = trim(preg_replace('/\s+/', ' ', $mex)); //Lo uso per togliere gli spazi.
echo "<div>$realmessage</div>";
In questo modo le frasi che contengono parole accentate scompaiono.
il simbolo € si vede correttamente
Se metto
Codice PHP:
$mex = htmlentities($gettext['text'], ENT_QUOTES);
Le frasi con parole accentate si vedono correttamente
Il simbolo € risulta un punto di domanda su rombo nero.