NZBGET_FIX_ENCODING/CHANGELOG.md

3.3 KiB

Changelog - FixEncoding pour NZBGet

Version 1.1 - 2025-10-27

🐛 Corrections de bugs

  • Correction du bug de l'espace insécable : Le script détecte maintenant correctement le caractère "à" encodé comme Ã\xa0 (Ã + espace insécable U+00A0)
  • Amélioration de la détection avec double vérification (pattern + test de conversion)

Améliorations

  • Ajout de patterns supplémentaires pour les majuscules accentuées
  • Liste étendue de patterns : É, È, Ê, Î, Ô, Ù, Û, Ç, Â, À
  • La détection vérifie maintenant que la conversion produit un résultat différent

🔧 Outils ajoutés

  • diagnose_filename.py : Script de diagnostic pour analyser les noms de fichiers problématiques
    • Affiche les octets en hexadécimal
    • Détecte les caractères suspects (espaces insécables, etc.)
    • Teste la conversion et affiche le résultat
    • Analyse des dossiers complets

📚 Documentation

  • Ajout de PROBLEME_FICHIER_NON_CORRIGE.md : Guide détaillé sur les cas spéciaux
  • Amélioration du README avec section de diagnostic
  • Exemples de cas d'usage supplémentaires

🔍 Détails techniques

Problème corrigé : Le caractère UTF-8 "à" (U+00E0) est encodé avec les octets 0xC3 0xA0. Quand mal interprété comme ISO-8859-1 :

  • 0xC3 → "Ã" (U+00C3)
  • 0xA0 → espace insécable (U+00A0, non-breaking space)

L'espace insécable est invisible mais différent d'un espace normal (U+0020).

Solution :

  • Ajout du pattern 'Ã\xa0' à la liste de détection
  • Double vérification : si un pattern est trouvé, on teste si filename.encode('iso-8859-1').decode('utf-8') produit un résultat différent
  • Si la conversion échoue, le fichier est ignoré (protection contre les faux positifs)

Version 1.0 - 2025-10-27

🎉 Version initiale

Fonctionnalités :

  • Détection et correction automatique des problèmes d'encodage UTF-8 → ISO-8859-1
  • Support des caractères accentués français : é, è, ê, à, â, ç, ô, etc.
  • Options configurables via NZBGet :
    • Debug : mode verbose pour les logs
    • FileExtensions : filtre par extension
    • DryRun : mode simulation
  • Script de test standalone (test_fix_encoding.py)
  • Documentation complète (README.md, QUICKSTART.md)
  • Compatible multiplateforme (Linux, Windows, macOS, Docker, NAS)
  • Traitement récursif des sous-dossiers
  • Gestion sécurisée des erreurs
  • Exit codes conformes aux standards NZBGet

Patterns supportés (v1.0) :

  • é → é
  • è → è
  • ê → ê
  • ë → ë
  • Ã → à
  • â → â
  • ä → ä
  • ç → ç
  • ô → ô
  • ö → ö
  • ù → ù
  • û → û
  • ü → ü
  • î → î
  • ï → ï
  • Å" → œ
  • É → É
  • À → À

Roadmap / Améliorations futures possibles

Court terme

  • Support optionnel de ftfy (Fix Text For You) pour les cas complexes
  • Option pour backup automatique avant renommage
  • Rapport détaillé en JSON pour intégration avec d'autres outils

Moyen terme

  • Support d'autres types de problèmes d'encodage (UTF-8 → CP1252, etc.)
  • Interface de configuration avancée
  • Statistiques cumulatives dans les logs

Long terme

  • Détection automatique du type de problème d'encodage
  • Support des langues autres que le français (allemand, espagnol, etc.)
  • Plugin web pour visualisation dans l'interface NZBGet