Dans un système de fichiers où les noms de fichiers sont en UTF-8, j'ai un fichier avec un nom erroné; il est affiché comme D�sinstaller:, nom réel selon zsh D$'\351'sinstaller:, Latin1 pour Désinstaller, lui-même une barbarie française pour "désinstaller". Zsh ne le ferait pas correspondre [[ $file =~ '^.*$' ]]mais le ferait avec un globbing *- c'est le comportement que j'attends.
Maintenant, je m'attends toujours à le trouver lors de l'exécution find . -name '*'- en fait, je ne m'attendrais jamais à ce qu'un nom de fichier échoue à ce test. Cependant, avec LANG=en_US.utf8, le fichier ne pas apparaître, et je dois ensemble LANG=C(ou en_US, ou '') pour que cela fonctionne.
Question: Quelle est la mise en œuvre derrière et comment aurais-je pu prédire ce résultat?
Infos: Arch Linux 3.14.37-1-lts, find (GNU findutils) 4.4.2
[[ $file =~ '^.*$' ]]ne pas utiliser recodele nom de fichier, mais je vais maintenant vérifier convmvsi besoin est. Merci.
convmvde convertir les noms de fichiers en utf-8?