BOM UTF-8, CRLF et LF : ces détails invisibles des fichiers de sous-titres
Dans cet article 8 parties
Le BOM est une marque invisible de trois octets placée au début d'un fichier UTF-8 ; CRLF et LF sont deux façons de marquer un retour à la ligne. En cas de doute, enregistrez en UTF-8 sans BOM avec des fins de ligne LF, sauf si votre lecteur impose autre chose.
Le BOM
Le BOM (« byte order mark », caractère U+FEFF) est écrit en UTF-8 par les trois octets EF BB BF. Il est invisible dans la plupart des éditeurs. Certains logiciels l'ajoutent à l'enregistrement, d'autres l'exigent pour reconnaître l'UTF-8, d'autres encore s'y heurtent : on peut alors voir «  » en début de fichier, ou un premier sous-titre mal lu.
Pour le WebVTT, la documentation MDN indique que la marque est facultative en tête de fichier, avant « WEBVTT ». Pour le SRT, il n'existe pas de règle officielle : le comportement varie selon le lecteur.
Les fins de ligne
- CRLF (retour chariot + saut de ligne) : habituel sous Windows.
- LF (saut de ligne) : habituel sous Linux et macOS.
La plupart des lecteurs acceptent les deux, et nos outils normalisent les fins de ligne en lisant le fichier. Un problème apparaît surtout avec des fichiers mélangeant les deux ou des vieux lecteurs matériels.
Que choisir
| Situation | Choix |
|---|---|
| Publication web, lecteur moderne | UTF-8, LF, avec ou sans BOM |
| Logiciel qui n'affiche pas les accents sans BOM | UTF-8 avec BOM |
| Lecteur qui affiche un caractère étrange au début | Retirez le BOM |
Comment vérifier
- Dans un éditeur de code, la barre d'état indique en général l'encodage (« UTF-8 with BOM ») et les fins de ligne (« CRLF » ou « LF »).
- Changez-les par la commande d'enregistrement avec encodage.
- Passez le fichier au vérificateur pour vérifier que le contenu est lu correctement. Pour les accents cassés, voir accents cassés.
Un symptôme typique
Le premier sous-titre d'un fichier apparaît avec des caractères étranges devant le premier mot, alors que tous les autres sont normaux : c'est souvent un BOM mal interprété. Ouvrez le fichier dans un éditeur de code, enregistrez-le « en UTF-8 sans BOM » (ou avec, selon le cas) et rechargez-le dans le lecteur. Si le symptôme touche tous les accents du fichier, la cause est plutôt l'encodage, pas le BOM.
Ajouter ou retirer le BOM
- Notepad++ : menu Encodage, puis « UTF-8 » (sans BOM) ou « UTF-8-BOM », et enregistrez.
- Visual Studio Code : cliquez sur l'encodage dans la barre d'état, choisissez « Enregistrer avec l'encodage », puis « UTF-8 » ou « UTF-8 with BOM ».
- Bloc-notes de Windows (versions récentes) : « Enregistrer sous », puis choisissez « UTF-8 » ou « UTF-8 avec BOM » dans la liste d'encodage.
Changer les fins de ligne
- Visual Studio Code : cliquez sur « CRLF » ou « LF » dans la barre d'état et choisissez l'autre valeur.
- Notepad++ : menu Édition, « Conversion des sauts de ligne ».
- En ligne de commande, les utilitaires
dos2unixetunix2dosconvertissent un fichier dans un sens ou dans l'autre.
Après la conversion, vérifiez que le nombre de sous-titres détectés n'a pas changé : une conversion ratée peut fusionner des lignes.
Questions fréquentes
Le BOM est-il compté dans la longueur du premier sous-titre ?
Il ne devrait pas l'être : c'est un marqueur, pas un caractère affiché. Mais un outil qui ne le reconnaît pas peut le compter, ou l'afficher. C'est l'un des signes qu'un outil gère mal le BOM.
Faut-il retirer le BOM d'un fichier WebVTT ?
Ce n'est pas nécessaire : il est autorisé avant la ligne « WEBVTT ». Retirez-le seulement si un outil précis s'y heurte.
Sources
- MDN : format WebVTT (Web Video Text Tracks) (consulté le 26 octobre 2026)