Journal Charsets multiples et systèmes de fichiers multiples

Posté par .
Tags :
0
20
nov.
2006
Bonjour,

En voyant le topique trollesque un peu plus bas je me suis souvenu de mon problème du début de week-end : l'installation d'un nouveau disque, et du coup, la réorganisation de tous mes FS.

Et là, j'ai eu un petit problème : j'ai des vieilles partitions ext3 formatées à l'époque du iso-machintruc et des nouvelles avec de l'UTF 8 dedans.

Du coup, mon système tout neuf, qui est en UTF8 m'affiche mal les noms de fichiers des vieux FS, m'oblige régulièrement à déspecialiser des caractères lors des copies, du fait de la non-conversion à la volée des chaînes d'un encodage vers l'autre.

Question : existe-t-il une méthode simple permettant de convertir les noms d'un FS d'un encodage vers un autre.

PS: je voulais bien sûr autre qu'un find -exec mv \{\} \`iso2utf \{\}\` \;
  • # goto forums

    Posté par (page perso) . Évalué à 4.

    http://qa.mandriva.com/twiki/bin/view/Main/MandrivaLinux2007(...)
    Un script perl permettant la conversion est joint.
    • [^] # Re: goto forums

      Posté par . Évalué à 1.

      Ca m'apprendra à pas lire les release notes...

      Par contre, j'ai un autre problème : ma passerelle, qui est en iso-machin n'est pas en UTF8, et me sert une partie de mes FS via NFS.

      Là je sens que je suis bon pour un reboot.

      PS: l'an prochain on passe en UTF32 et on reformate tout :)
      • [^] # Re: goto forums

        Posté par . Évalué à 1.

        une réinstallation je voulais dire...
  • # convmv

    Posté par . Évalué à 6.

    Un outil qui est trop souvent oublié : convmv

    Il ne fait que la conversion de nom de fichiers : super utile et très puissant.
  • # saloperie de charset.

    Posté par . Évalué à 2.

    Moi aussi, j'ai ce genre de probleme.

    Je fait un rsync de mon dossier de mp3 stoquer sur mon serveur linux, vers mon dd externe a partir de mon macosX.
    Et la.. ca merde avec tout les fichiers qui ont des accents.

    J'aimerai plutot faire dans le radical et trouver un outil qui me remplace tous les characteres accentues par leur equivalents non accentues. Genre:
    Tété.ogg devient Tete.ogg.
    De toute facon, les accents dans le nom, on s'en fout, la vrai metadonnee est dans les les id3 et consorts.
    • [^] # Re: saloperie de charset.

      Posté par . Évalué à 1.

      Cool un troll sur les ID3.

      Les ID3 c'est tout aussi nul que l'ISO-88...

      Un classement hiérarchique du style /style/auteur/album/ est aussi efficace, et a le mérite de profiter de tous les outils standard en ligne de commande. Dy style je veux trouver tous les interprétations d'un standard de Jazz, au hasard foo :
      find -name [fF][oO][oO].\*

      Parce que les ID3 tags merdent aussi à cause de l'encodage. L'autre jour, j'ai vu que j'avais une petite centaine de style différents dans ma flac-tèque. Qui au final se résument à Jazz/Classique.

      Par exemple prenons le style Jazz/Fusion : on va trouver dans les ID3 (Jazz Fusion) (jazz fusion) (JAZZ FUSION) (j'arrête là les majuscules) (jazz rock) (jazz funk) (acid jazz) (jazz alternatif) (modern jazz) et j'en passe.

      On est tributaire de la personne qui a saisies les styles, et ce n'est pas normalisé...

      Sans compter que les sous-styles ne sont pas identifiables, comme Oeuvre pour Piano et puis Oeuvre Pour Orchestre pour un compositeur donné.

      http://lfs.irisa.fr/
      • [^] # Re: saloperie de charset.

        Posté par (page perso) . Évalué à 3.

        find -iname foo.\* n'est il pas tout aussi efficace.
        • [^] # Re: saloperie de charset.

          Posté par . Évalué à 0.

          je pense que find -iname ne prend pas en compte les tags mp3, ce qui était évoqué là.

          Only wimps use tape backup: real men just upload their important stuff on megaupload, and let the rest of the world ~~mirror~~ link to it

          • [^] # Re: saloperie de charset.

            Posté par (page perso) . Évalué à 2.

            Parce que
            find -name [fF][oO][oO].\*
            ca prend en compte les tag mp3?
            • [^] # Re: saloperie de charset.

              Posté par . Évalué à 2.

              non plus !

              C'est pour cela que l'auteur du post plus haut a dit qu'il préférait
              "Un classement hiérarchique du style /style/auteur/album/"

              donc find -name ou find -iname c'est pareil pour lui s'il sait comment sont classés ses albums !

              (pour ma part j'utilise beaucoup locate -i foo |grep -i bar et je retrouve très rapidement ce que je cherche de façon générale)

              Only wimps use tape backup: real men just upload their important stuff on megaupload, and let the rest of the world ~~mirror~~ link to it

              • [^] # Re: saloperie de charset.

                Posté par (page perso) . Évalué à 1.

                Et non c'est pas pareil parce qu'avec le -name c'est nettement plus chiant si il y a des variations de case comme sous entendu avec son [fF][oO][oO]

                Après locate c'est sympa, mais des fois ca me fait chier d'attendre qu'il mette la base à jour.
                • [^] # Re: saloperie de charset.

                  Posté par (page perso) . Évalué à 1.

                  L'idéal c'est de déclencher la mise à jour de slocate réguilèrement (par exemple lorsque ta machine est peu/pas utilisée mais, évidemment, sous tension). Et comme cela tu n'as pas à mettre à jour avant d'avoir à utiliser locate (parce que sinon autant utiliser find, tu perdras moins ton temps).
                • [^] # Re: saloperie de charset.

                  Posté par . Évalué à 2.

                  c'est pareil pour lui s'il sait comment sont classés ses albums


                  décidément....

                  s'il sait exactement comment il a entré ses répertoires, après libre à lui de taper la commande qu'il veut pour les retrouver bon sang !!!

                  Only wimps use tape backup: real men just upload their important stuff on megaupload, and let the rest of the world ~~mirror~~ link to it

          • [^] # Re: saloperie de charset.

            Posté par (page perso) . Évalué à 2.

            D'où l'interet de deepfind (et de deepgrep), qui va fouiller dans les mp3, ogg, odt, pdf, .... enfin, tout ce que Stigi peut gerer. Version au stéroides de find/grep.

            Pour ceux qui l'ignore, Strigi est un moteur de recherche a la Beagle, remplaçant de Kat, qui serait le moteur de KDE4 (et qu'il serait bien que gnome adopte aussi vu qu'il est "neutre" (ni QT, ni gtk, ni mono)). Il offre une interface dBus.
      • [^] # Re: saloperie de charset.

        Posté par (page perso) . Évalué à 2.

        La prochaine génération de système de fichier lira (lit) les metadonnées et construit des arborescences en fonction des métadonnées...
      • [^] # Re: saloperie de charset.

        Posté par (page perso) . Évalué à 1.

        Les ID3 c'est tout aussi nul que l'ISO-88...
        Ca depend, j'utilise DAAP pour partager ma musique et sans ID3 ca sert pas a grand chose...

        Un classement hiérarchique du style /style/auteur/album/ est aussi efficace, et a le mérite de profiter de tous les outils standard en ligne de commande.
        C'est pas incompatible avec des tags...

        On est tributaire de la personne qui a saisies les styles, et ce n'est pas normalisé...
        Il suffit de retagger toute sa discotheque, avec des outils comme easytag, ca va plutot vite, et ensuite on fait renommer les fichiers en fonction du tag, comme ca on enleve les espaces, les majuscules et tous les autres caracteres a la con (de mon point de vue, l'ASCII 7 bits a encore trop de caracteres pour les noms de fichiers...)
        J'ai fait ca avec environ 50Go de musique, c'est realisable si on a un peu de temps devant soi. Et apres il suffit de faire ca avec chaque nouvel album...
    • [^] # Re: saloperie de charset.

      Posté par (page perso) . Évalué à 1.

      En PHP, mais l'algorythme doit pouvoir etre traduit facilement :

      $origCharset = 'ISO-8859-1' ;

      // convert string to html
      $fileName = strtolower(htmlentities($fileName, ENT_QUOTES, $origCharset)) ;

      // remove '
      $spcChars = explode( '|', ''|$') ;
      $repChars = explode( '|', '-|-' ) ;
      $fileName = str_replace($spcChars,$repChars, $fileName) ;

      // convert some special chars. can be extended and perfected, more chars, localization, etc.
      $spcChars = explode( '|', 'æ|œ|&|·|@|€|£|$|©|®') ;
      $repChars = explode( '|', 'ae|oe|-and-|.|-at-|euro|pound|dollar|copyright|rights' ) ;
      $fileName = str_replace($spcChars,$repChars, $fileName) ;

      // remove accents
      $fileName = preg_replace('/&([a-z])(acute|uml|circ|grave|ring|cedil|slash|tilde|caron);/','$1',$fileName) ;

      // convert special chars
      $fileName = preg_replace('/&([a-z]+);/','$1',$fileName) ;

      // replace illegal chars with '-'
      $fileName = preg_replace('/[^a-z0-9\.\-]/', '-', $fileName) ;

      // replace multiple '-'
      $fileName = preg_replace('/-+/','-',$fileName) ;

      // replace end and begin '-'
      $fileName = preg_replace('/(-$|^-)/','',$fileName) ;

      En sortie, tu as par exemple :
      - Fichier copié.jpg => fichier-copie.jpg
      - Ventes & Prévisions.doc => ventes-and-previsions.doc
      - Essai 2005 ®.xls => essai-2005-rights.xls
      - Stædler.ppt => staedler.ppt
      - ...

      Bien sur, tu peux faire quelques adaptations, comme traduire & par et au lieu de and, etc...
    • [^] # Re: saloperie de charset.

      Posté par . Évalué à 2.

      Je ne comprends pas pourquoi quodlibet/exfalso n'est pas plus célèbre, y'a un tas de truc magique dedans.

      Entre autres, il peut virer tous les caractères à problème des noms de tes fichiers, il peut utiliser les id tags de tes fichiers pour changer leurs noms, ou inversement, utiliser le nom du fichier pour tagger le mp3..
      J'ai passé un coup de exfalso sur mes mp3, retagué toutes les erreurs et franchement y'a pas photo après en mode de navigation album dans quodlibet c'est de la balle.

      http://www.sacredchao.net/quodlibet

      Quodlibet devrait être le lecteur de musique par défaut de toutes les distribs. Avant, je trouvais amarok pas mal.. depuis que j'ai vu les fonctions de tagging de quodlibet, je n'y retournerais pas.
      • [^] # Re: saloperie de charset.

        Posté par . Évalué à 0.

        Le problème de tout ça, c'est qu'un standard puissant émerge. Pour l'instant les ID3s, c'est nul pour un classement avancé de sa CD-Thèque.

        J'aimerais bien avoir des méta-données concernant l'ochestration, tous les musiciens présents...

        Pour ensuite pouvoir faire des requêtes du style : donne moi tous les Balades de Charlie Parker et Miles Davis sans Big Band. Ou bien, cherche moi du Piano du répertoire Russe mais pas du Rachmaninov, et des bonnes interprétations s'il te plait.

        Et pout ça, il faudrait
        - que les fichiers de musique embarquent simplement le CD-ID, comme ça on ne récupérerait de fichiers taggés n'importe comment.
        - que les bases de données en ligne contiennent toutes les informations voulues.

        Il suffirait ensuite de se synchroniser périodiquement avec la base en ligne pour voir son classement amélioré.
  • # kio

    Posté par . Évalué à 1.

    Et pendant qu'on y est, connaissez-vous le moyen de dire à un kioslave quel charset utiliser ?

    Exemple : quand j'accède à mes données sur mon compte au labo depuis chez moi, bien que je stocke mes noms de fichiers en utf-8 (locale utf-8 pour mon compte utilisateur), et bien que ma machine à la maison soit 100% utf-8, KDE suppose que le FS accédé en kio_fsh est en iso-truc, et forcément ça déconne.

    Je précise que je ne suis pas root sur ma machine au labo et que je ne peux donc changer ni les options de montage, ni les options de sshd (qui sont a priori les options par défaut de debian 3.1... ).
  • # J'ai fait ça récemment

    Posté par . Évalué à 2.

    J'ai fait ça récemment et j'ai écrit un billet dessus :

    http://aurelp.fr.eu.org/blog/index.php?2006/11/10/32-passer-(...)

    Utrac, Universal Text Recognizer and Converter, c'est très pratique.

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.