Parece que el tratamiento de archivos en PHP no funciona con ciertos caracteres (por ejemplo, €) codificados UTF-8 si la ruta está codificada y el archivo php se guardó como UTF- 8.Tratamiento de archivos PHP con caracteres especiales UTF-8
¿Es posible hacerlo funcionar con todos (o la mayoría de los caracteres occidentales)? ¿Hay alguna biblioteca que lo haga posible? Porque no pude encontrar ninguno.
Por ejemplo, una carpeta llamada äöü&()éèàâêûô@$+ç%&=
! £ _; {[]} ~ '¢ ¬§ ° @ @ ... € `en windows no funcionará con is_dir().
EDIT: SOLUCIÓN
Ok, he encontrado una solución. Todavía no lo he probado completamente, no estoy seguro de si es infalible aún y no sé si esta es la mejor práctica, pero codificar la cadena de vuelta a ANSI parece ser el truco (al menos para la cadena que publiqué))
$string = iconv(mb_detect_encoding($string, "auto"), 'Windows-1252', $string);
Creo que esto debería funcionar con la configuración predeterminada de la mayoría de las computadoras con Windows occidental.
Hola. Gracias por su respuesta. Me diste una idea. Intento volver a codificarlo en ANSI con algo como esto '$ string = iconv (mb_detect_encoding ($ string," auto "), 'Windows-1252', $ string);' y parece ser el truco. Todavía no lo he probado completamente pero funciona para la cadena que publiqué (por ahora). – huuerequer