A ver, si el charset o codificación de la base era utf8, las tablas lo tendrían y la collation o cotejamiento adecuado sería cualquiera de los de utf8, entre ellos utf8_unicode_ci, pero no sé cuál es. Para eso tal vez te valga esta consulta, que te traerá el charset y la collation de la base:
SELECT default_character_set_name,default_collation_name
FROM information_schema.schemata WHERE schema_name='tu_base_de_datos';
Cita: El archivo php donde se hace la búsqueda tenía codificación ANSI. Lo he puesto en UTF-8 y he dejado la base de datos tal como estaba al principio, todos los cotejamientos los he dejado en latin1_swedish_ci menos el cotejamiento de la base de datos que estaba en utf8_unicode_ci.
Si tu charset es utf8, bien, pero, si no, tendrás que poner en el archivo el correspondiente a tu la codificación de tu base.
He probado y ahora si escribo en el buscador la palabra Mélanie me sale como resultado la actriz Mélanie Thierry. No obstante si escribo la palabra Melanie me sale el mismo resultado.
Eso es lógico, pues la collation utf8_unicode_ci tiene la terminación ci que significa case insensitive (no diferenciará en tus filtrados mayúsculas y minúsculas ni tampoco vocales con acentos, tildes, etc.)
Cita: Mejor que antes está, al menos la búsqueda me da resultado si escribo la palabra con tilde o sin ella. Pero se podría poner para que de resultado sólo si se escribe la palabra acentuada?
No, nunca está bien, si no está del todo bien. Más tarde tendrás otros problemas. Arreglemos los problemas desde la base y para eso tienes que saber el charset y collation por defecto de tu base.
Código MySQL:
Ver originalYa que estamos... qué tipo de codificación es conveniente elegir ANSI o UTF
-8?. Ciertamente
no me he preocupado de este tema hasta que me ha surgido este pequeño error en la aplicación.
Hoy en día el charset de referencia es UTF-8, pero si tienes una aplicación que funciona con ANSI y cubre tus necesidades, para qué cambiar nada. ANSI te cubrirá las lenguas occidentales, pero UTF-8 es el charset internacional.