Una posible solución sería crear otra columna en la base de datos al lado de "artista", como "artista_normalizado". Aquí, mientras completa la tabla, puede insertar una versión "normalizada" de la cadena. La búsqueda se puede realizar en la columna artist_normalized.
Un código de prueba:
<?php
$transliterator = Transliterator::createFromRules(':: NFD; :: [:Nonspacing Mark:] Remove; :: NFC;', Transliterator::FORWARD);
$test = ['abcd', 'èe', '€', 'àòùìéëü', 'àòùìéëü', 'tiësto'];
foreach($test as $e) {
$normalized = $transliterator->transliterate($e);
echo $e. ' --> '.$normalized."\n";
}
?>
Resultado:
abcd --> abcd
èe --> ee
€ --> €
àòùìéëü --> aouieeu
àòùìéëü --> aouieeu
tiësto --> tiesto
La magia la hace la clase Transliterator. La regla especificada realiza tres acciones:descompone la cadena, elimina los signos diacríticos y luego recompone la cadena, canonicalizada. Transliterator en PHP está construido sobre ICU, por lo que al hacer esto confía en las tablas de la biblioteca ICU, que están completas y confiable.
Nota:esta solución requiere PHP 5.4 o superior con intl extensión.