c'est-à-dire que j'ai un fichier appelé Porträt.pdf.
Mais le nom de fichier a été créé avec un jeu de caractères qui ne s'affiche pas correctement dans Ubuntu, comme dans l'exemple suivant.
Quelle serait la meilleure pratique pour renommer de tels caractères dans les noms de fichiers, lorsque vous avez plusieurs noms de fichiers et que vous ne pouvez pas utiliser ce caractère spécial à cause de son codage dans les commandes de terminal?
En théorie, il peut être difficile de connaître le codage de caractères utilisé par les fichiers, mais dans la plupart des cas, l'erreur provient de systèmes et de programmes Windows qui utilisent encore uniquement Latin1 au lieu de UTF-8. Exécutez convmv -f cp850 -t utf-8 *
sans guillemets dans le dossier contenant les fichiers endommagés et essayez-le.
(Vous devez installer le paquet convmv
)
Si vous voulez juste vous débarrasser de certains personnages, vous pouvez essayer ceci:
rename "s/[^A-Za-z0-9-_]/_/g"
Cela remplacerait chaque caractère qui n'est pas simplement un caractère, un nombre ou un tiret par un trait de soulignement. Exécutez-vous avec l'option -n
pour voir ce qui se passe dans un essai.
Je suppose que les systèmes d’exploitation modernes choisissent souvent UTF-8 pour coder les noms de fichiers. En ce sens, le nom des fichiers ne pose aucun problème. Ce que vous avez expérimenté est probablement le résultat d'un nom de fichier créé avec un codage non UTF-8. C'est assez difficile de dire ce que vous pouvez faire avec ça, ça dépend aussi de ce que vous voulez. Si vous avez besoin du nom de fichier correct (par exemple "Porträt.pdf"), vous devez tout d'abord connaître l'encodage du nom de fichier d'origine, puis vous pouvez le convertir. Ce n'est pas si facile à "deviner" seulement car il y a énormément d'encodages très différents.