Qu’est-ce que le mojibake ?
Le mojibake, ce sont des caractères illisibles qui apparaissent quand un texte est enregistré dans un encodage et lu dans un autre. Le plus souvent, un texte UTF-8 est lu par erreur en Windows-1252 ou en ISO-8859-1. Chaque octet d’un caractère spécial apparaît alors comme un caractère à part.
Causes fréquentes
- La connexion à la base de données utilise
latin1alors que les données sont en UTF-8. - Le serveur web envoie
charset=ISO-8859-1, mais la page est enregistrée en UTF-8. - Un logiciel de messagerie ou d’envoi de newsletters déclare un mauvais encodage.
- Un ancien site ou un WordPress migré mélange des données en Latin-1 et en UTF-8.
- Un texte est copié entre des programmes qui attendent des encodages différents.
Cassé deux fois : é
Si un texte déjà cassé est de nouveau mal converti, on obtient un double mojibake : é devient d’abord é, puis é. Mojibuster reconnaît aussi ces niveaux et en répare jusqu’à trois d’un coup.
Pour les développeurs : corriger la cause
- Déclarez
<meta charset="utf-8">dans le HTML et envoyez l’en-têteContent-Type: text/html; charset=utf-8. - Utilisez
utf8mb4dans MySQL et MariaDB pour les tables et la connexion (SET NAMES utf8mb4). - Enregistrez les fichiers source en UTF-8 sans BOM.
- Ne convertissez le texte qu’une seule fois : à la frontière entre votre système et l’extérieur.
Questions fréquentes
Que signifie le caractère � ?
C’est le caractère de remplacement U+FFFD. Un programme l’insère lorsqu’il n’a pas pu lire un octet. Le caractère d’origine est alors perdu ; Mojibuster vous indique combien de positions sont concernées.
Puis-je aussi convertir des codes HTML comme é ?
Oui. Activez l’option Convertir aussi les codes HTML. Les codes comme é, é et é sont alors transformés en vrais caractères.
Mon texte est-il stocké ?
Non. La réparation se fait dans votre navigateur. Le texte n’est ni transmis ni stocké.
Cela fonctionne-t-il avec d’autres langues ?
Oui. Mojibuster répare tout caractère mal lu depuis l’UTF-8, par exemple les accents espagnols et portugais, les trémas allemands, les emojis ou l’écriture japonaise.