caracteres especiales en el problema “file_exists” (php)

Uso caracteres especiales (letras suecas åäö).

Ahora, tengo algunas carpetas, que contienen imágenes para clasificados. Las carpetas se nombran por categoría.

for ($i=1; $i<=5; $i++){ if (file_exists($big_images.$i.'.jpg')){ echo "Inne"; unlink($big_images.$i.'.jpg'); } if (file_exists($thumb_images.$i.'.jpg')){ unlink($thumb_images.$i.'.jpg'); } } 

Permito hasta 5 imágenes en mi sitio, cada una terminando con un nr 1-5. Sin embargo, mi problema es este, siempre que el nombre de la carpeta tenga un carácter especial, el archivo_exists devuelve falso, es decir, no encuentra el archivo. Aunque está allí.

Todos los documentos están en formato utf-8.

Esto funciona cuando no hay caracteres especiales en los nombres de las carpetas.

Si necesita más información hágamelo saber

¿Cuál es el sistema operativo del servidor?

Si es Windows, no podrá acceder a los archivos con un nombre de archivo codificado en UTF-8, porque la implementación de Windows de las bibliotecas C IO utilizadas por PHP solo se comunicará en la página de códigos predeterminada del sistema. Para instalaciones en Europa Occidental, esa es la página de códigos 1252. Puede convertir una cadena UTF-8 a cp1252 usando iconv:

 $winfilename= iconv('utf-8', 'cp1252', $utffilename); 

( utf8_decode también podría usarse, pero daría los resultados incorrectos para los caracteres de extensión de Windows que se asignan al rango 0x80-0x9F en cp1252).

Los archivos cuyos nombres incluyen caracteres fuera del repertorio de la página de códigos del sistema (por ejemplo, griego en un cuadro occidental) no pueden ser accedidos en absoluto por PHP y otros progtwigs que utilizan el stdio. Existen lenguajes de scripting que pueden usar nombres de archivos Unicode nativos a través de las API de Win32, pero PHP5 no es uno de ellos.

Y, por supuesto, el paso anterior no debe utilizarse cuando se implementa en un sistema operativo diferente donde el sistema de archivos está codificado en UTF-8. (es decir, Linux moderno)

Si necesita compatibilizar sin problemas el servidor con PHP, deberá abstenerse de utilizar caracteres que no sean ASCII en los nombres de archivo. Lo siento.