NZBGET_FIX_ENCODING/CHANGELOG.md

99 lines
3.3 KiB
Markdown
Raw Permalink Normal View History

2025-10-27 13:26:05 +00:00
# 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