メインコンテンツへスキップ
SubtitleMatrix

字幕から BOM を削除

テキストとスタイル文字コードと BOM の修正
字幕テキストを貼り付けることもできます

オプション

BOM はファイルの先頭にある3バイトで、どの文字コードかを示します。どのエディタやプレーヤーでも見えず、画面の場所も取らず、付けても外しても字幕の中身は変わりません。BOM を気にするツールは2種類あります。字幕を書き出す Windows のプログラム(既定で付けます)と、ビルド処理の厳格なパーサー(BOM で始まるファイルを拒否します)です。このページはタイトルが示す状態で欄を開くので、ファイルが逆だった場合は切り替えられます。UTF-16 のファイルは常に BOM を持ちます。どちらのバイト順かを読み手が知る手段だからです。外すよう指定してもそのまま残ります。

タイミングを数える基準のフレームレートです。形式のページでは MicroDVD が必要とする値で、同形式は時間をフレーム番号で保存します。フレームレートのページでは、そのファイルがどのレートを前提に作られたか(字幕が合わせて作られた版)を指し、ページの2つ目の欄には実際に使う動画のレートを入れます。よく使われるのは 23.976、24、25、29.97、30、50、59.94、60 です。間違えると時間軸全体がずれます。フレームレートのページでは、ずれは固定量ではなく比率で生じます。

バイトオーダーマーク(BOM)は 1 文字、U+FEFF で、ファイルのほかのすべての前に置かれます。多くのツールが書き、多くのツールが想定していません。想定しないツールは、最初の字幕の先頭にくっついた短い記号の塊として表示します。このページはそれを外し、ほかは見つけたとおりに残します。

外すことが最も重要なのは、ファイルが人が読むものからプログラムが解析するものに変わる場面です。字幕のビルドパイプライン、ファイルの最初の行を読むスクリプト、先頭バイトが最初の字幕の最初の文字だと仕様が定めている形式などです。ファイルを連結するときにも重要で、つないだファイルの途中の印は字幕の途中の文字になります。納品でも重要です。納品先の仕様が印なしの UTF-8 と言っているなら、印は検査が見つける違いです。

このページがしないのは、ほかのことを代わりに決めることです。字幕番号、タイムコード、字幕テキスト、改行はすべて入ったとおりに戻り、CRLF もそのままです。印のなかったファイルは、等価な何かに書き直されるのではなく、バイト単位でそのまま戻ります。印を外すことはファイルの文字コードを変えることとは違い、よく混同されます。このページが変えるのはファイルの最初の文字で、残りの文字コードには何もしません。

このページの題名と実際の動作がずれる場合が 1 つあり、実行前に知っておく価値があります。UTF-16 のファイルは印が必要です。印がなければ 2 つのバイト順を見分ける方法がなく、印なしで書かれた UTF-16 ファイルは読み戻せません。そのファイルをこのページに通すと、ダウンロードされるファイルには印が残ります。そうしなければ誰も開けないファイルになるからです。ファイルが UTF-16 で、印を外す必要があるなら、欲しいのは印なしの同じ文字コードではなく別の文字コードで、変換ページは下にリンクしています。

印はダウンロードするファイルから外れるので、2 つの表示欄は同じに見えます。幅 0 の文字はまさに見えない文字の見た目です。結果はエディタの文字コード表示か 16 進ビューアで確認してください。印のないファイルは最初の字幕の最初のバイトから始まります。このサイトが扱う 12 形式すべて、SRT からプレーンテキストの文字起こしまでを受け付け、どこにもアップロードされず、ファイルはブラウザの中で読まれ、変更され、書き出されます。

例

印を外した、印付きのファイル

入力

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

出力

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

入力は U+FEFF で始まり、出力はそうではありません。2 つのファイルはちょうどその 1 文字だけが違い、それが操作のすべてです。この状態のファイルはたいてい Windows の字幕プログラムから出てきたもので、印を消したい理由は、字幕ではなく先頭バイトを見るビルド手順か厳格なパーサーです。

印を外し、復帰文字はそのままにした Windows のファイル

入力

1
00:00:01,000 --> 00:00:02,000
Marked and Windows.

出力

1
00:00:01,000 --> 00:00:02,000
Marked and Windows.

消えるのは印だけです。復帰文字はすべてファイル自身のもので、このページはそれについて何の意見も持ちません。両方を変えたい人は改行のページを求めていて、2 つを別々に保つことが、開いていないファイルにも安全に実行できる理由です。期待されるテキストは入力どおりの CRLF を保っています。

印のないファイルをバイト単位でそのまま

入力

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

出力

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

外すものがなかったので、ファイルは印の不在も含めてそのまま戻ります。これは印を先に書いて後から取り除く実装や、途中でファイルを正規化する実装を捕まえる例です。「することがなかった」の正直な読みは入力そのもの、バイト単位であって、整えられた版ではありません。

よくある質問

字幕ファイルに BOM が付いているかはどう見分けますか?

ファイルの文字コードを表示するエディタで開くと、印付きの UTF-8 ファイルは通常、素の UTF-8 ではなく UTF-8 with BOM や UTF-8 BOM と表示されます。それがなければ 16 進ビューアで先頭バイトを見てください。EF BB BF で始まるファイルは印を持ち、字幕の最初の文字で始まるファイルは持ちません。最初の行の先頭の記号の塊は、印を 3 つの普通の文字として読んだプログラムに見えている同じものです。

UTF-16 の字幕ファイルで印を外しても残るのはなぜですか?

UTF-16 のファイルは印を必要とするからです。UTF-16 はすべての文字を 2 バイトで保存し、2 つのバイト順は外から見ると似ているので、どちらの順かを読む側に伝えるのが印です。印のない UTF-16 ファイルは、このサイトでもほかの何でも読み戻せません。このページが印を残すのはそのためです。印をまったく持たないファイルが欲しいなら、印が任意の UTF-8 か Windows-1252 に文字コードを変えてください。

印がなかった字幕ファイルを壊すことはありますか?

ありません。その場合の出力は入力そのもので、バイト単位で、何も報告されません。状態が分からないファイルに実行しても安全なのも同じ理由です。外す印がなければ書くものがなく、あれば最小限の変更になります。何もしなかった実行は、何かをした実行ではありません。

字幕ファイルに BOM が 2 つ以上あることはありますか?

あります。ツールが既存の印を確かめずに印を足すたびに起きます。2 つ目の印があるファイルはエディタではまったく普通に見えますが、先頭バイトが普通のファイルと異なります。このページは 1 つではなくすべての印を外すので、二重の印のファイルも 1 回で片付き、もう一度実行してもさらに変わることはありません。

印を外すと字幕ファイルの文字コードは変わりますか?

普通に言われる意味では変わりません。ファイルのテキストは同じ文字のままで、残りの部分も同じように符号化されています。変わるのは、読む側に文字コードを告げる先頭バイトがなくなることです。印のない UTF-8 ファイルは普通の UTF-8 で、ほとんどのツールがもともと仮定する形です。文字コードそのものを変えるのは別のページで、ここからリンクしています。

字幕ファイルをダウンロードすると印は戻りますか?

戻りません。ダウンロードはファイルが書き出される瞬間で、このページの実行は印なしで書き出すので、2 つの表示欄が示すとおりのものが得られます。ファイルを書き出す文字コードは読んだときのものが保たれますが、例外が 1 つあります。UTF-16 で来たファイルは UTF-16 として書き戻され、印を保ちます。その印は飾りではなく構造だからです。

関連ツール