Permitidme que rescate este tema, llevémoslo más allá!
Puesta en escena:
Tengo un formulario generado dinamicamente con javascript (appendChild a hierro) consistente en un área de texto y un botón.
Al pulsar el botón se envía el contenido del textarea a un archivo PHP usando un poco de manteca, digo, AJAX.
Con la siguiente función genero el pseudo-formulario y envío los datos en POST:
Código:
function nuevoM(curso)
{
if (document.getElementById('nuevoMensaje')) return;
var lbl = document.createElement('label');
lbl.htmlFor = 'nuevoMensaje';
lbl.appendChild(document.createTextNode('Nuevo registro en el diario:'));
document.getElementById('Mdiario').appendChild(lbl);
var txta = document.createElement('textarea');
txta.id = 'nuevoMensaje';
txta.rows = 5;
txta.cols = 80;
txta.className = 'ancho100';
document.getElementById('Mdiario').appendChild(txta);
var btn = document.createElement('input');
btn.type = 'button';
btn.value = 'Insertar';
btn.onclick = function ()
{
if (txta.value == '') return;
txta.value.replace('€', 'EUR');
var xo = xmlobj();
xo.open('POST', 'ejecucion/xml_diario.php?id=' + curso);
xo.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=iso-8859-1");
xo.onreadystatechange = function()
{
if (xo.readyState == 4) if (xo.responseText.substr(0, 5) == 'Error') alert(xo.responseText);
}
xo.send('msg=' + txta.value);
xo.send('msg=' + txta.value);
cargaDiario(curso);
cutChilds(document.getElementById('Mdiario'));
}
document.getElementById('Mdiario').appendChild(btn);
}
Todos los archivos están codificados en ANSI, yo únicamente uso EditPlus para estos menesteres, pero los datos los recibo en UTF8, cosas de javascript, firefox y Rita "la Cantaora"
He probado, sin éxito, cambiar el carácter € antes de enviar la información, pero JS no se percata de su existencia.
He probado, sin éxito, cambiar la codificación de los archivos a UTF8.
He probado, sin éxito,
soluciones propuestas en la web de PHP para utf8_decode.
La cosa me queda así:
(las ? deberían ser €)
Ahora me queda probar lo de
lanzar un piano por la ventana, a ver si acierto.
Se aceptan sugerencias!!!