Cita:
Iniciado por joselegolas Buenas a todos, os traigo una duda que me ronda.
Tengo un php con un combobox y al seleccionar un value llamo a un script que tengo en otro php, haciendo la llamada mediante ajax de la siguiente forma:
Código:
<script language="javascript">
// Interceptamos el evento submit
function buscarperfil() {
// Enviamos el formulario usando AJAX
$.ajax({
type: 'POST',
url: 'buscarPerfil.php',
data: $('#nombres'),
// Mostramos un mensaje con la respuesta de PHP
success: function(data) {
$('#BodyPerfiles').html(data);}
})
return false;
};
</script>
el script se ejecuta bien, pero tanto el texto como el formulario que me devuelve lo hace sin tildes, mostrandome simbolos raros, esto a priori lo podría solucionar con el acute haciendo á = á pero el problema se me intensifica cuando en el script hago una consulta a la base de datos, donde a priori no se que carácteres contienen.
He probado metiendo <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/> en el head de cada php y nada.
También he probado a poner contentType: "application/x-www-form-urlencoded;charset=iso-8859-1", en la llamada de ajax y tampoco.
Muchas gracias a todos
Esto dependerá de la salida mysql. La codificación de la página deberá ser equivalente a la de la salida mysql, y esta se mostrará de una forma u otra dependiendo del charset (en el header
Content-Type) establecido en la cabecera de la respuesta para el cuerpo de la respuesta HTTP.
Puedes usar
mysql-set-charset o un análogo de mysqli para setearlo a UTF-8 o iso-8859-1.
El establecimiento se hace antes de cada consulta, justo tras abrir conexión.