Buongiorno.
Ho questo problema: devo inviare ad un programma php tramite ajax il contenuto di un campo di testo editabile dall'utente.
Il problema principale sta nei caratteri accentati che devo poter leggere correttamente in php, quindi dovrebbero arrivarmi codificati in iso-8859-15 (che è la codifica che uso all'interno del codice).
La pagina è impostata per usare iso-8859-15, attraverso
codice:
<?xml version="1.0" encoding="ISO-8859-15" ?>
e
codice:
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=iso-8859-15" />
anche il form è impostato per usare quella codifica
codice:
<form id='FormEditPag' name='FormEditPag' action='#' enctype='multipart/form-data' method='post' accept-charset='iso-8859-15' >
e persino il codice è impostato sull'iso:
codice:
<script type="text/javascript" charset="iso-8859-15"> function ajaxSendUri()
{
title = escape(document.getElementById('TitoloPag').value);
$.ajax({
url : 'GeneraUrl.php',
type: 'POST',
success : function (data,stato)
{
document.getElementById('TitoloUrl').value=data;
},
error : function (richiesta,stato,errori)
{
alert('Errore durante il salvataggio dei dati asincrono. Stato: '+stato+' - Richiesta: '+richiesta+' - Errori: '+errori);
}
,
data :
{
'titolo' : title
},
type : 'POST'
});
}
</script>
Nonostante tutte queste accortezze il comando encodeURI si rifiuta di codificare in iso-8859-15 il parametro title e continua a codificare in utf8. Questo mi crea un mucchio di casini all'interno del codice e l'unica soluzione che ho trovato, anche cercando su internet, è stata di usare encode.
due dubbi: il primo è che encode è deprecato il secondo è che non sono certo che encode funzioni correttamente anche sui mac.
Avete mai avuto problemi simili? come avete risolto?
Grazie