Lisää BOM-merkki tekstitykseen
Tai liitä tekstityksen teksti
Asetukset
BOM on kolme tavua aivan tiedoston alussa, jotka kertovat, mikä merkistökoodaus on käytössä. Se on näkymätön jokaisessa editorissa ja soittimessa, se ei vie tilaa ruudulta, eikä tekstityksissä muutu mikään, kun se lisätään tai poistetaan. Kahdenlaiset työkalut välittävät siitä: Windows-ohjelmat, jotka kirjoittavat tekstityksiä ja lisäävät sen oletuksena, ja käännösputkien tiukat jäsentimet, jotka hylkäävät sillä alkavan tiedoston. Tämä sivu avaa laatikon nimeämässään tilassa, joten voit kääntää sen, jos tiedostosi osoittautuu päinvastaiseksi. UTF-16-tiedostossa on aina BOM, koska sen avulla lukija tietää, kumpaa tavujärjestystä se katsoo — pyyntö poistaa se jätetään siinä tapauksessa huomiotta.
Kuvanopeus, jossa ajoitukset on laskettu. Muotosivuilla tätä tarvitsee MicroDVD, koska se tallentaa ajoituksen ruutunumeroina. Kuvanopeussivuilla tämä on nopeus, jota vasten tiedosto ajastettiin — versio, jolle tekstitys tehtiin — ja sivun toinen laatikko ottaa sen videon nopeuden, jonka kanssa aiot tekstitystä käyttää. Yleisiä ovat 23,976, 24, 25, 29,97, 30, 50, 59,94 ja 60. Väärä arvo siirtää koko aikajanaa, ja kuvanopeussivuilla se siirtää sitä suhteellisesti eikä kiinteällä määrällä.
Tavujärjestysmerkki on yksi merkki — U+FEFF — kaiken muun edessä tiedostossa. UTF-8:ssa se on kolme tavua, EF BB BF, ja se on ensimmäinen asia, jonka lukija näkee. Tämän sivun tulosteessa mikään ei näytä erilaiselta: samat alaotsikot, samat aikakoodit, samat rivinvaihdot ja merkki ensimmäisen edessä.
Joku haluaa sen siksi, että merkki on tapa, jolla tiedosto sanoo ”olen UTF-8” sanomatta sitä. Tekstitystiedoston avaavan ohjelman on arvattava, missä merkistökoodauksessa se on, ja hyvin moni niistä — vanhemmat Windows-soittimet, levynkirjoitustyökalut, ensimmäisen rivin lukevat skriptit — päättää katsomalla ensimmäisiä tavuja sen sijaan että jäsentäisi koko tiedoston. Anna niille merkki, niin aksentillinen nimi, kaareva lainausmerkki tai kreikkalainen kirjain tulee ulos omana itsenään. Jätä se pois, niin sama tiedosto voidaan lukea järjestelmän paikallisena koodisivuna, jossa ne merkit muuttuvat kokonaan joksikin muuksi.
Toinen suunta on se, jonka ihmiset yleensä kohtaavat ensin: tiedosto, jossa on merkki, avattuna työkalulla, joka ei odota sitä. Työkalu lukee kolme tavua kolmena merkkinä ja näyttää ne ensimmäisen rivin alussa, ja siitä syntyy se pieni symboliryhmä jonkun tekstitystiedoston yläreunassa. Jos katsot juuri sitä, tämä on väärä sivu — merkki pitää poistaa eikä lisätä, ja sen tekevä sivu on linkitetty alle.
Sivu ei muotoile tiedostoa uudelleen matkan varrella. Se ei koske CRLF-rivinvaihtoihin, alaotsikkonumeroihin, ajoituksiin eikä yhdenkään alaotsikon tekstiin, eikä se päätä tiedostosi merkistökoodausta puolestasi: tiedosto, joka ei ole UTF-8, on eri ongelma, ja sitä varten on oma sivunsa. Se lisää yhden merkin aivan alkuun, ja jos merkki on jo siellä, se jättää tiedoston rauhaan eikä lisää toista, joten sivun ajaminen kahdesti antaa saman tiedoston kuin kerran.
Merkki lisätään tiedostoon, jonka lataat. Sivun kaksi ruutua voivat siksi olla silmälle identtiset — näkymätön merkki näyttää täsmälleen näkymättömältä merkiltä — ja rehellinen tapa tarkistaa tulos on katsoa kolmea ensimmäistä tavua heksakatselimessa tai tiedoston merkistökoodausta editorisi tilariviltä. Kaikki kaksitoista tämän sivuston käsittelemää tekstitysmuotoa voivat kantaa merkin, koska merkki on tiedoston aloitustavujen ominaisuus eikä tiedä alaotsikoista mitään. Mitään ei lähetetä missään vaiheessa: tiedosto luetaan, muutetaan ja kirjoitetaan selaimessasi.
Esimerkit
ASCII-tekstitystiedosto, jonka edessä on merkki
Syöte
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.
Tuotos
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.
Odotettu teksti alkaa näkymättömällä merkillä: U+FEFF, kolme tavua EF BB BF, ennen ensimmäisen alaotsikkonumeron ykköstä. Kaksi ruutua näyttävät sinulle samalta, eikä se ole piirtovirhe — näiden tiedostojen ero on kolmen tavun pituinen eikä yhdelläkään niistä ole muotoa. Lataa tulos ja avaa se editorissa, joka näyttää merkistökoodauksen, tai katso ensimmäisiä tavuja heksakatselimessa, niin se on ensimmäinen asia, jonka näet.
Windows-tiedosto, merkki lisättynä ja vaununpalautukset säilytettyinä
Syöte
1
00:00:01,000 --> 00:00:02,000
The room is dark.
Tuotos
1
00:00:01,000 --> 00:00:02,000
The room is dark.
Kaksi asiaa, joita Windowsin tekstitystyökalu kirjoittaa, ovat merkki ja CRLF-rivinvaihdot, minkä vuoksi ne sekoitetaan — mutta ne ovat erillisiä, ja tämä sivu kirjoittaa vain ensimmäisen. Jokainen vaununpalautus odotetussa tiedostossa on syötteen oma, ja merkki lisätään niiden eteen. Sivu, joka kirjoittaisi myös rivinvaihdot uudelleen, muotoilisi hiljaa jokaisen sille annetun tiedoston, ja juuri se on muutos, jota kukaan ei huomaa ennen kuin jokin alavirran työkalu välittää siitä.
Tiedosto, jossa on jo merkki
Syöte
1
00:00:01,000 --> 00:00:02,000
Already marked.
Tuotos
1
00:00:01,000 --> 00:00:02,000
Already marked.
Syötteessä on jo merkki, joten tuloste on syöte tavu tavulta — tiedostoon jää täsmälleen yksi. Tämän sivun naiivi versio, joka liittää merkin poistamatta ensin olemassa olevaa, tuottaa tiedoston, jossa niitä on kaksi, ja kaksinkertainen merkki on näkymätön jokaisessa editorissa mutta eri tiedosto kaikelle, mikä lukee aloitustavut. Sivun ajaminen jo merkittyyn tiedostoon pitäisi olla asia, jonka voi tehdä miettimättä.
Usein kysytyt kysymykset
Mitä tavujärjestysmerkin lisääminen tekstitystiedostoon oikeasti muuttaa?
Yhden merkin aivan tiedoston alkuun: U+FEFF, joka kirjoitetaan UTF-8:ssa kolmena tavuna EF BB BF. Yhtään alaotsikkoa ei lisätä, poisteta tai muokata, yksikään aikakoodi ei liiku, alaotsikkonumerot ja rivinvaihdot tulevat ulos sellaisina kuin menivät sisään eikä yhdenkään rivin tekstiin kosketa. Jos vertaat kahta tiedostoa, ainoa eroava rivi on ensimmäinen, ja se eroaa alustaan kolmen tavun verran.
Miksi tämän BOM-sivun kaksi ruutua näyttävät identtisiltä?
Koska lisättävällä merkillä ei ole muotoa. U+FEFF on leveydetön sitomaton välilyönti, joten ruutu, joka piirtää tekstin niin kuin soittimesi tekisi, näyttää saman ennen ja jälkeen. Muutos on todellinen ja se on tiedostossa, jonka lataat: ero on kolme ensimmäistä tavua. Editorisi merkistökoodausilmaisin tai heksakatselin, joka näyttää alussa EF BB BF, on paikka, josta sitä kannattaa etsiä tekstin sijaan.
Onko BOMin lisääminen turvallista ajaa kahdesti samalle tiedostolle?
On. Sivu poistaa jo olevan merkin ennen kuin kirjoittaa omansa, joten jo merkitty tiedosto tulee takaisin muuttumattomana ja merkitsemätön saa täsmälleen yhden. Kaksi ajoa antavat saman tiedoston kuin yksi. Siksi myös tiedosto, joka on käynyt tämän sivun läpi ja sitten työkalun, joka lisäsi toisen merkin, voidaan siistiä lähettämällä se kerran uudelleen, koska vain yksi selviää.
Säilyykö merkki, jos muunnan tekstitystiedoston myöhemmin toiseen muotoon?
Ei tämän sivuston muunnossivuilla, jotka kirjoittavat tavallista UTF-8:aa ilman merkkiä, joten täällä lisätty merkki ei kulje muodonvaihdon yli. Järjestä työ sen mukaisesti: muunna ensin ja lisää merkki viimeisenä vaiheena ennen toimitusta. Se on yleisemminkin järkevämpi järjestys, koska merkki on valmiin tiedoston ominaisuus eikä tekstityksen sisällön ominaisuus.
Muuttaako merkin lisääminen tekstitystiedoston rivinvaihtoja?
Ei. Latin-1- tai UTF-8-merkki on yksi merkki, joka pannaan tiedoston ensimmäisen tavun eteen, eikä se vaikuta siihen, mikä seuraa. CRLF-rivinvaihtoja täynnä oleva Windows-tiedosto pysyy sellaisena, Unix-tiedosto pysyy LF:llä ja sekatiedosto tulee ulos samalla sekoituksella kuin saapui. Rivinvaihtojen vaihtaminen on eri sivu, ja on huono ajatus antaa yhden sivun tehdä hiljaa molemmat.
Mitkä tekstitysmuodot voivat saada tavujärjestysmerkin?
Kaikki kaksitoista, joita tämä sivusto käsittelee: SRT, WebVTT, ASS, SSA, SBV, SAMI, LRC, MicroDVD, TTML, JSON ja CSV. Merkki koskee tiedoston aloitustavuja eikä tekstitysmuotoa, joten mitään muotokohtaista ei tarvitse saada oikein — jopa pelkkä tekstitiedostopuhtaaksikirjoitus, jossa ei ole aikajanaa lainkaan, voi kantaa sen.