Gå till huvudinnehållet
SubtitleMatrix

Lägg till BOM i undertexter

Text och formateringRätta teckenkodning och BOM
Eller klistra in undertexttext

Inställningar

En BOM är tre byte alldeles i början av filen som talar om vilken teckenkodning den är i. Den är osynlig i varje redigerare och spelare, den tar ingen plats på skärmen, och inget i undertexterna ändras när den läggs till eller tas bort. Två sorters verktyg bryr sig om den: Windowsprogram som skriver undertexter, som lägger in en som standard, och strikta tolkar i byggkedjor, som avvisar en fil som börjar med en. Den här sidan öppnar fältet i det läge som dess titel namnger, så du kan växla om din fil visar sig vara tvärtom. En fil i UTF-16 bär alltid en BOM, eftersom det är så en läsare vet vilken av de två byteordningarna den tittar på – att begära att ta bort den där låter den ligga kvar.

Vilken bildfrekvens tiderna räknas i. På formatsidorna är det här vad MicroDVD behöver, eftersom formatet lagrar tider som bildnummer. På bildfrekvenssidorna är det den frekvens som filens tider byggdes för – den version som undertexterna gjordes för – och sidans andra fält tar frekvensen för den video du ska använda dem med. 23,976, 24, 25, 29,97, 30, 50, 59,94 och 60 är de vanligaste. Blir det fel förskjuts hela tidslinjen, och på bildfrekvenssidorna förskjuts den med ett förhållande i stället för med ett fast belopp.

Lägg en BOM först i undertextfilen. BOM är ett osynligt tecken, U+FEFF, som skrivs som tre byte i början av en UTF-8-fil och talar om för läsaren att filen är just UTF-8. Vissa äldre program och en del leveranskrav vill ha den; andra blir förvirrade av den.

Sidan är idempotent: den tar först bort alla BOM-tecken som redan står först i filen och lägger sedan till ett enda. En fil som redan har en BOM kommer därför tillbaka med exakt en, inte två, och en fil utan får en. Det gör sidan säker att köra flera gånger.

Radbrytningarna rörs inte. En Windows-fil med CRLF behåller CRLF, och en Unix-fil med LF behåller LF; bara de tre byten först i filen tillkommer. Textblockens tider, ordning och innehåll är också oförändrade.

Alla tolv format kan användas, eftersom BOM ligger före formatets egen syntax och därför inte påverkar tolkningen. Filen behandlas i webbläsaren och lämnar aldrig datorn.

Exempel

En ASCII-fil med en markering framför

Indata

1
00:00:01,000 --> 00:00:02,000
The room is dark.

2
00:00:03,000 --> 00:00:04,000
A cold night.

Resultat

1
00:00:01,000 --> 00:00:02,000
The room is dark.

2
00:00:03,000 --> 00:00:04,000
A cold night.

De tre byten för BOM läggs först i filen, före ettan i första textblocket. Resten av filen är byte för byte identisk, inklusive tider, numrering och radbrytningar.

En Windows-fil där markeringen läggs till och vagnreturerna behålls

Indata

1
00:00:01,000 --> 00:00:02,000
The room is dark.

Resultat

1
00:00:01,000 --> 00:00:02,000
The room is dark.

BOM läggs först, men radbrytningarna är fortfarande CRLF. Sidan ändrar inte filens radslut när den lägger till en markering, så en fil som redigerats på Windows fortsätter att vara en Windows-fil.

En fil som redan har en markering

Indata

1
00:00:01,000 --> 00:00:02,000
Already marked.

Resultat

1
00:00:01,000 --> 00:00:02,000
Already marked.

Filen har redan en BOM, och resultatet blir exakt en BOM — inte två. Sidan tar bort befintliga markeringar först och lägger till en ny, vilket gör den säker att köra om utan att filen växer.

Vanliga frågor

Vad är en BOM och vad gör den?

BOM är tecknet U+FEFF som står först i en fil och markerar att filen är kodad som UTF-8. I UTF-8 skrivs det som tre byte, EF BB BF. Det är osynligt i en textredigerare men kan avgöra om ett program tolkar filen som UTF-8 eller som en äldre teckenkodning, och därför ber vissa leveranskrav om det.

Lägger sidan till flera BOM om filen redan har en?

Nej. Sidan tar först bort alla BOM-tecken som står först i filen och lägger sedan till exakt ett. En fil med en BOM får alltså en, en fil med två får en, och en fil utan får en. Det gör körningen idempotent: resultatet blir detsamma hur många gånger du än kör den.

Behålls Windows-radbrytningarna?

Ja. BOM är tre byte först i filen, och sidan rör ingenting annat. En fil med CRLF behåller CRLF, en fil med LF behåller LF, och en fil med blandade radslut är fortfarande blandad. Vill du ändra radbrytningarna är det en annan sida, som konverterar dem till en enhetlig stil.

Vilka format kan få en BOM?

Alla tolv format. BOM ligger före formatets egen syntax och påverkar därför inte hur filen läses, oavsett om det är SRT, WebVTT, ASS eller ett JSON-format. Sidan behöver inte känna igen formatet för att lägga till markeringen, men den skriver ut filen i samma format som den kom in i.

Kan BOM ställa till problem?

Ja, hos program som inte förväntar sig den. En del skript och äldre spelare kan visa ett osynligt tecken först eller vägra läsa filen. Sidan lägger därför bara till BOM när du uttryckligen väljer det, och det finns en motsvarande sida som tar bort den om ett program klagar.

Ändras texten eller tiderna?

Nej. Bara de tre byten först i filen tillkommer. Textblockens start- och sluttider, ordning, numrering, textinnehåll och formatering är identiska med indatafilen. En fil som redan har rätt BOM kommer tillbaka byte för byte.

Relaterade verktyg