> Faqs > Problemas con acentos y ñ en Ajax

Problemas con acentos y ñ en Ajax

Hola amigos, os explico un poco, tengo una web donde tengo un formulario en el cual se muestran las localidades existentes en la bbdd, según la localidad que elija, mediante AJAX, se muestran en otro combo las zonas que existen en la bbdd para dicha localidad.

Las búsquedas en la bbdd las realizo mediante PHP.

Mi problema es el siguiente: si escojo una localidad la cual contiene una "ñ" no me muestra las zonas para esa localidad. Es como si no encontrará esa localidad. Y si es la zona la contiene la ñ no me encuentra nada en la bbdd. En las variables de PHP que contienen las localidades y las zonas he utilizado htmlentities y nada.

Una prueba que he realizado es la siguiente: He impreso por pantalla la consulta que se realiza y la he copiado al phpmyadmin y me ha funcionado correctamente. Ahh se me olvidaba decir que en IE me funciona correctamente donde no me funciona es en Mozilla.

¿Puede ser debido a la versión de apache que tengo instalada?

Respuestas

Para que te funcionen las ñ, acentos y otros caracteres especiales como la ç, necesitas trabajar con UTF8. Esto en Ajax es algo obligado.

Entiendo por tu pregunta que lo estás haciendo ya, porque si no, no te funcionaría en ningún navegador...

Entonces lo más seguro es que tengas que hacer una limpieza en tus cadenas antes de compararlas. Así también te asegurarías que cuando alguien busca con o sin acentos le encuentre cosas. Por ejemplo, podrían buscar por "cádiz" o por "cadiz", incluso "espana" o "españa" deberían arrojar los mismos resultados.

Este código está sacado directamente de stackoverflow, que permite eliminar los acentos y otros caracteres (no lo he probado):

const str = "Crème Brulée"
str.normalize("NFD").replace(/[\u0300-\u036f]/g, "")

Devuelve "Creme Brulee"

Fuente: https://stackoverflow.com/questions/990904/remove-accents-diacritics-in-a-string-in-javascript

Con esa conversión sí que deberías obtener las localidades con las ñ y demás.

Nadia
156 5 14 6

Hola!

A veces es tan sencillo como asegurarse usar UTF8 en los archivos que usas en la programación. Tanto en las páginas .html como en los archivos .php.

En Windows hay que tener especial cuidado con eso, pues dependiendo del editor no siempre los archivos usan UFT8.

Alberto
610 16 42 18

Realmente solo tienes una falla en el codigo y es muy pequeña pero afecta onmouseover='this.style.background=

Valeria Avellaneda