99 lines
3.3 KiB
Markdown
99 lines
3.3 KiB
Markdown
|
|
# 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
|