Actualmente estoy tratando de eliminar todos los caracteres especiales y acentos de una cadena UTF-8 convirtiéndolos en su equivalente carácter ASCII si es posible.¿Por qué el iconv de PHP necesita setlocale?
Así que estoy simplemente usando este código:
$result = iconv('UTF-8', 'ASCII//TRANSLIT//IGNORE', $input);
El problema es que por ejemplo la palabra "debut" se convierte en "dbut" en lugar de "debut". para hacer que funcione, necesito añadir una llamada a setlocale, así:
setlocale(LC_ALL, 'en_US.UTF8');
$result = iconv('UTF-8', 'ASCII//TRANSLIT//IGNORE', $input);
Y no entiendo por qué. Pensé que UTF-8 y ASCII siempre eran lo mismo, cualquiera que sea el lugar que uses.
EDIT: No me refiero a UTF-8 es igual a ASCII, me refería a UTF-8 siempre es igual a UTF-8 y ASCII siempre es igual a ASCII
ASCII y UTF-8 no son lo mismo. UTF-8 es más grande por órdenes de magnitud. – NikiC