Qu'est-ce que Encodage (charset) ?
UTF-8 permet de représenter tous les caractères Unicode (accents, symboles, écritures multiples). Le charset doit apparaître tôt dans le document (idéalement dans les 1024 premiers octets) pour que le navigateur interprète correctement le reste. En HTML5, cette meta est la seule suffisante ; en XHTML/HTML4 on pouvait aussi utiliser l’en-tête HTTP Content-Type. Une incohérence entre la déclaration (UTF-8) et l’encodage réel du fichier (ex. Latin-1) provoque des caractères incorrects. Les fichiers doivent être sauvegardés en UTF-8 (sans BOM pour le HTML) et servis avec Content-Type: text/html; charset=utf-8 si possible.
Comment ça marche ?
Une balise <meta charset="utf-8"> placée tôt dans le <head> (idéalement dans les 1024 premiers octets) indique au navigateur comment interpréter les octets du document. Les fichiers doivent être sauvegardés en UTF-8 pour correspondre à cette déclaration.
L'Impact Business
Un mauvais encodage ou une déclaration absente provoque des caractères cassés (é au lieu de é, etc.). Problème fréquent sur des vieux CMS ou des exports mal configurés. Pour un site en français ou multilingue, UTF-8 est la norme ; toute déviation dégrade la crédibilité et l’accessibilité. Les erreurs d’affichage nuisent à la confiance et peuvent faire douter de la qualité technique du site. Vérifier le charset est une des premières étapes en cas de bug d’affichage.
Bonnes pratiques vs Erreurs communes
- ✅ À faire : Toujours mettre <meta charset="utf-8"> en tête du <head>. Enregistrer tous les fichiers (HTML, CSS, JS) en UTF-8 sans BOM. Vérifier les en-têtes HTTP du serveur si les problèmes persistent.
- ❌ À éviter : Déclarer UTF-8 alors que les fichiers sont en Latin-1 (ou l'inverse), ce qui produit des caractères cassés. Oublier la meta charset sur des pages générées dynamiquement ou des templates.
Prompt IA
Contexte : problème d’affichage [exemple : é au lieu de é], stack [CMS / framework]. Liste les causes possibles (meta charset absente ou incorrecte, fichier sauvegardé en Latin-1, double encodage, BOM). Pour chaque cause, donne la correction (HTML, en-têtes HTTP, export/sauvegarde). Donne la ligne <meta> exacte et, si applicable, l’en-tête HTTP à configurer.