Nombres de archivo UTF8 en PHP y diferentes codificaciones Unicode
Tengo un archivo que contiene caracteres Unicode en un servidor que ejecuta Linux. Si SSH en el servidor y uso la tabulación completa para navegar al archivo / carpeta que contiene caracteres Unicode, no tengo ningún problema para acceder al archivo / carpeta. El problema surge cuando intento acceder al archivo a través de PHP (la función desde la que accedía al sistema de archivos erastat
). Si imprimo la ruta generada por el script PHP en el navegador y la pego en el terminal, el archivo también parece existir (aunque mirando la terminal, las rutas del archivo son exactamente iguales).
Configuro PHP para usar UTF8 como su codificación predeterminada a través de php_ini, así como también para configurarmb_internal_encoding
. Revisé la codificación de cadena de ruta de archivo PHP y sale como UTF8, como debería. Hurgando un poco más decidíhexdump
el carácter é que la tabulación del terminal completa y lo compara con elhexdump
del carácter 'regular' é creado por el script PHP o ingresando manualmente el carácter mediante el teclado (opción + e + e en os x). Aquí está el resultado:
echo -n é | hexdump 0000000 cc65 0081 0000003 echo -n é | hexdump 0000000 a9c3 0000002
El carácter é que permite una referencia de archivo correcta en el terminal es el de 3 bytes. No estoy seguro de a dónde ir desde aquí, ¿qué codificación debo usar en PHP? ¿Debería estar convirtiendo el camino a otra codificación a través deiconv
omb_convert_encoding
?