Este artículo describe una incidencia detectada por el autor al estandarizar los subtítulos de su biblioteca multimedia local en formato WebVTT, compatible con el elemento de HTML5. Como muchos subtítulos solo están disponibles en SRT, escribió una función en Python que convierte SRT a WebVTT. Durante la conversión, descubrió que algunos archivos SRT incluían la marca de orden de bytes (BOM) UTF-8 al principio y que su código no la gestionaba, lo que dejaba el BOM incrustado en medio del archivo WebVTT resultante.
La BOM es el carácter U+FEFF, una secuencia de bytes (EF BB BF en UTF-8) que indica la codificación de un archivo de texto. En el caso concreto del autor, al estar todos los archivos en UTF-8, la solución consistió en abrir los SRT con la codificación 'utf-8-sig' de Python, que detecta y omite automáticamente la BOM. Tras aplicar esta corrección, quedaron archivos WebVTT ya generados con BOMs erróneos, localizados con ripgrep mediante una búsqueda de bytes sin soporte Unicode ((?-u:\xEF\xBB\xBF)). Un script en Python los recorrió, eliminó las secuencias de bytes y reescribió los archivos limpios. El control de versiones con Git permitió verificar que el proceso no introdujo otros cambios.
