• [^] # Re: équivalent à la biblio Python FTFY

    Posté par (site web personnel, Mastodon) . En réponse à la dépêche Sortie de uchardet 0.0.8 pour la détection de codages de caractères. Évalué à 10. Dernière modification le 21 décembre 2022 à 19:16.

    C'est un concept dérivé, mais c'est pas du tout la même chose:

    Is ftfy an encoding detector?

    No, it’s a mojibake detector (and fixer). That makes its task much easier, because it doesn’t have to guess the encoding of everything: it can leave correct-looking text as it is.

    Encoding detectors have ended up being a bad idea, and they are largely responsible for creating the problems that ftfy has to fix.

    The text that you put into ftfy should be Unicode that you’ve attempted to decode correctly. ftfy doesn’t accept bytes as input.

    There is a lot of Unicode out there that has already been mangled by mojibake, even when decoded properly. That is, you might correctly interpret the text as UTF-8, and what the UTF-8 text really says is a mojibake string like "réflexion" that needs to be decoded again. This is when you need ftfy.

    En gros, ce projet (que je ne connaissais pas) part du principe que l'on ne va pas détecter correctement le codage d'origine (et qu'on travaille forcément en UTF-8 en codage final), et va essayer de corriger votre résultat de conversion erronée. En d'autres termes, on pourrait utiliser FTFY après avoir utilisé uchardet si ce dernier s'est planté.

    Évidemment je ne suis pas du tout d'accord avec leur "lemme" qui est qu'on ne sait pas faire de la détection de codage ("Encoding detectors have ended up being a bad idea"). J'ai mes nombreuses années de travail sur uchardet qui prouvent que ce lemme est faux. uchardet est vraiment vraiment bon. Je ne dis pas que ce projet (ftfy) est totalement inutile. Il peut l'être pour les rares cas où uchardet se plante. Mais leur argument de base est faux: si, de nos jours, on sait globalement très bien et très efficacement détecter le codage de flux de textes donc le codage d'origine est inconnu. Genre vraiment très bien. Essayer uchardet le prouve.

    Ensuite bien sûr qu'on peut encore améliorer l'efficacité, et des gens comme moi y travaillent (comme je le dis, même si je viens à peine de sortir la version 0.0.8, la future version 0.1.0 a déjà fait un bond d'efficacité avec des nouveaux concepts que j'expérimente; ça m'impressionne moi-même parfois). Et surtout il faut ajouter de plus en plus de prises en charge de langues et codages. J'en ai déjà ajouté plusieurs ces derniers jours. Je pense que je pourrai avoir quelques dizaines de modèles supplémentaires pour la prochaine version.

    P.S.: modérateurs de LinuxFr: un éditeur a dû être un peu trop zêlé avec une regexp:

    $ echo « Joyeux Noël et bonnes fêtes de fin d’année! » | uchardet -V
    [...]
    $ echo "메리 크리스마스! » | uchardet -V

    Ce sont des strings de lignes de commandes shell, donc c'est bien " et non « ou » qui doivent être affichés sur les 2 commandes! 😜

    Film d'animation libre en CC by-sa/Art Libre, fait avec GIMP et autre logiciels libres: ZeMarmot [ http://film.zemarmot.net ]