Mojibake

Définition, exemples et bonnes pratiques

À retenir

  • C'est une erreur de lecture des octets, pas nécessairement une perte de données.
  • Le problème vient d'un décalage entre l'encodage du créateur du fichier et celui du lecteur.
  • L'adoption d'Unicode (UTF-8) est la solution universelle pour éviter ce problème.

Le mojibake désigne l'apparition de symboles incohérents (comme é à la place de é) lorsqu'un texte est affiché avec le mauvais encodage de caractères. C'est un peu comme essayer de déchiffrer un message écrit en alphabet latin en utilisant une grille de lecture prévue pour le cyrillique : les données sont là, mais l'interprétation est fausse.

Étymologie

Emprunté au japonais, le mot se compose de moji (caractère) et bake (transformation ou déguisement). Il s'est popularisé dans les années 2000 pour décrire le chaos visuel provoqué par la cohabitation de plusieurs normes de codage incompatibles (comme le Shift-JIS et l'EUC-JP) avant l'adoption massive de l'Unicode.

Exemples d'usage

  • L'affichage de é au lieu de é sur une page web dont l'en-tête est mal configuré.
  • Des carrés vides ou des points d'interrogation () dans un document texte ouvert avec un logiciel obsolète.
  • Des noms de fichiers devenus illisibles après un transfert entre un système Windows et un serveur Linux.

Cas d'usage

Ce phénomène survient principalement lors du développement web (oubli de la balise meta charset), de la migration de bases de données, ou lors de l'importation de fichiers CSV exportés depuis des tableurs comme Excel vers des outils plus modernes.

Bonnes pratiques

La recommandation absolue est d'utiliser l'encodage UTF-8 pour tout : fichiers sources, bases de données et serveurs web. Il est également crucial de déclarer explicitement l'encodage dans les en-têtes HTTP ou les balises HTML pour ne pas laisser le navigateur deviner.

Synonymes

soupe de caractères bug d'encodage caractères corrompus

Antonymes

rendu fidèle texte lisible

Conseil

Si vous tombez sur du mojibake en ouvrant un fichier, évitez de l'enregistrer tout de suite. Utilisez la fonction « Réouvrir avec l'encodage » de votre éditeur (comme VS Code ou Notepad++) pour tester UTF-8 ou Windows-1252 jusqu'à retrouver le texte original.

Questions fréquentes

Mon fichier est-il définitivement corrompu ?

Le plus souvent, non. Le contenu est intact, c'est l'affichage qui fait défaut. Si vous changez l'encodage dans votre éditeur, le texte redeviendra lisible.

Pourquoi voit-on souvent des symboles comme à ?

C'est le signe typique d'un texte écrit en UTF-8 mais lu par un logiciel qui utilise l'ancien standard occidental (ISO-8859-1).