¿Por qué mis archivos contienen caracteres extraños en sus nombres tras una transferencia de servidor?
En algunos casos, al transferir archivos entre diferentes servidores, puede que empieces a ver nombres de archivos con caracteres extraños:
������_����.txt
o
342325341342336322_344320331333.txt
Esto significa que tus archivos no están en UTF-8 y en la mayoría de los casos estos archivos no pueden ser utilizados por tu página y acaban mostrando errores 404 si accedes a ellos. Generalmente, suelen ser imágenes subidas a tu página que después de una transferencia, dejaron de aparecer en las páginas de tu sitio web.
Para solucionarlo, deberás convertir los archivos a UTF-8. Para ello debes encontrar primero su codificación actual.
Accede a tu cuenta a través de SSH y navega a la carpeta donde se encuentren los archivos, después ejecuta el siguiente comando:
file -i *
Esto mostrará un listado de todos tus archivos en el directorio actual, así como su codificación, por ejemplo:
username@server [~/public_html]# file -i *
������_����.txt: text/plain; charset=iso-8859-5
El valor del parámetro charset es la actual codificación de tus archivos. En este caso, es iso-8859-5.
Si no puedes ver los archivos con sus nombres adecuados mientras estés conectado por SSH a tu cuenta, añade las siguientes líneas al archivo ~/.bashrc:
export LC_CTYPE=en_US.UTF-8
Para modificar el archivo usa SSH, FTP o Site Tools > Sitio web > Gestor Manager.
Ahora que sabes exactamente que codificación utilizan tus archivos, puedes convertirles a UTF-8 utilizando la función convmv. Primero tienes que descargarlo y extraerlo utilizando el siguiente comando:
wget https://www.j3e.de/linux/convmv/convmv-2.01.tar.gz; tar -xzf convmv-2.01.tar.gz
Luego, convierte los archivos ejecutando este otro comando:
./convmv-2.01/convmv --notest -r -f iso-8859-5 -t UTF-8 .
Ten en cuenta que deberás reemplazar iso-8859-5 en el comando con la codificación exacta que quieres utilizar. El comando superior convertirá todos los archivos del directorio actual y sus subcarpetas a UTF-8 y los archivos deberían empezar a mostrarse con sus verdaderos nombres, así como deberían de poder verse desde tu página web. Asegúrate siempre de hacer copias de seguridad de tus archivos antes de realizar ningún cambio, así podrás recuperarlos en caso de que algo no salga bien durante la conversión.