Pourquoi mes fichiers ont-ils des caractères étranges dans leurs noms après le transfert sur le serveur ?
Dans certains cas, après avoir transféré des fichiers sur différents serveurs, vous pouvez commencer à voir leurs noms de fichiers avec des caractères étranges:
������_����.txt
ou
342325341342336322_344320331333.txt
Cela signifie que les fichiers ne sont pas au format UTF-8 et que dans la plupart des cas, ces fichiers ne peuvent pas être utilisés par votre site web et produiront une erreur 404 si vous essayez pour y accéder. Habituellement, ce sont les images envoyées sur le site qui, après un transfert, cessent d’apparaître sur les pages du site.
Pour résoudre ce problème, convertissez les fichiers en UTF-8 . Pour ce faire, vous devez d’abord trouver leur encodage actuel.
Connectez-vous via SSH à votre compte, naviguez jusqu’au dossier où se trouvent les fichiers, puis exécutez la commande suivante:
fichier -i *
Ceci listera tous les fichiers dans le répertoire courant et affichera leur encodage, par exemple:
nom_utilisateur@serveur [~/public_html]# fichier -i *
������_����.txt: text/plain; jeu de caractères=iso-8859-5
La valeur du paramètre charset est l’encodage actuel des fichiers. Dans ce cas, il s’agit de iso-8859-5 .
Si vous ne pouvez pas voir les fichiers avec leurs noms propres lorsque vous êtes connecté à votre compte via SSH, ajoutez les lignes suivantes dans le fichier ~/.bashrc :
exportation LC_CTYPE=en_US.UTF-8
Pour modifier le fichier, utilisez SSH, FTP ou Site Tools > Site > Gestionnaire de fichiers .
Maintenant que vous connaissez l’encodage exact utilisé par les fichiers, convertissez-les en UTF-8 à l’aide de l’utilitaire convmv . Tout d’abord, vous devez le télécharger et l’extraire en utilisant cette commande:
wget https://www.j3e.de/linux/convmv/convmv-2.01.tar.gz; tar -xzf convmv-2.01.tar.gz
Ensuite, pour convertir les fichiers, exécutez cette commande:
./convmv-2.01/convmv --notest -r -f iso-8859-5 -t UTF-8 .
Notez que dans la commande vous devez remplacer iso-8859-5 par l’encodage exact de vos fichiers. La commande ci-dessus convertira tous les fichiers du répertoire courant et de tous les sous-dossiers en UTF-8 et les fichiers devraient commencer à apparaître avec leurs noms propres et vous devriez pouvoir les utiliser sur votre site web. Assurez-vous toujours d’avoir des sauvegardes des fichiers sur votre compte au cas où quelque chose se passerait mal pendant la conversion.