Qu'est-ce que mb_detect_encoding ?
C'est une fonction de l'extension mbstring qui tente d'identifier l'encodage d'une chaîne à partir d'un ordre de détection.
Les points essentiels à connaître pour l'utiliser efficacement :
1 Fonctionnement et signature
Retourne le nom de l'encodage détecté ou false si rien n'est reconnu.
2 Ordre de détection
L'ordre des encodages influence fortement le résultat.
3 Encodages fréquemment rencontrés
Ceux qui posent souvent question en production :
4 Limites et pièges
Pourquoi la détection peut se tromper :
Problèmes classiques
Copier-coller depuis Word ou emails
Introduit du CP1252 détecté comme ISO-8859-1, provoquant des caractères erronés.
Tests unitaires instables
Résultats différents selon l'environnement si mb_detect_order varie.
Détection "ASCII" inattendue
Une chaîne 7 bits est vue comme ASCII alors que vous attendiez UTF-8.
JSON/DB qui cassent
"Malformed UTF-8" pendant json_encode ou des ??? en base faute de conversion.
Exemple de problème courant :
Symptômes qui doivent vous alerter
🚨 Signaux d'alarme
Comment détecter et valider l'encodage
✨ Solution recommandée : mb_detect_encoding
mb_detect_encoding permet d'identifier l'encodage d'une chaîne.
Configurez l'ordre de détection, activez le mode strict et combinez avec mb_convert_encoding pour fiabiliser vos flux.
✅ Ordre pertinent
Placez UTF-8 en premier, puis CP1252, ISO-8859-1, etc.
📊 Validation stricte
Utilisez strict=true pour rejeter les séquences invalides
🧹 Gestion du BOM
Détectez et retirez un BOM avant traitement si nécessaire
💾 Stratégie de repli
Prévoyez un encodage par défaut si la détection échoue
Autres méthodes de détection
Affichage de l'encodage dans l'éditeur
En ligne de commande (Unix)
En code
JavaScript (Node)
Python
Excel / Google Sheets
Nettoyer et prévenir
🚀 Solution rapide avec mb_detect_encoding
Détectez l'encodage, puis convertissez vos données en UTF-8 avec mb_convert_encoding pour uniformiser l'application.
Méthodes techniques avancées
🔧 Normaliser
🧹 Filtrer
mb_detect_encoding($s, ['UTF-8'], true) puis convertissez
mb_convert_encoding ou iconv pour re-encoder
⚙️ Automatiser
utf8mb4 et collation cohérente
Checklist rapide
mb_internal_encoding('UTF-8')
mb_detect_order défini et homogène (dev/CI/prod)
Conclusion
mb_detect_encoding est précieux, mais son efficacité dépend de l'ordre de détection, du mode strict et de la façon dont vous convertissez ensuite vos données.
Mettez en place une stratégie claire: détecter, valider, convertir vers UTF-8 et contrôler vos points d'entrée. Vous éliminerez la majorité des anomalies d'affichage et d'intégration.
Vérifiez vos encodages dès maintenant
Utilisez nos outils et bonnes pratiques pour détecter et normaliser l'encodage de vos textes et fichiers.
Vérifier mes encodages