字幕の文字コードを変換
字幕テキストを貼り付けることもできます
オプション
変わるのはバイトであって字幕ではありません。ファイル内のすべての文字が選んだ文字コードで書かれるため、特定の文字コードを要求するプレーヤーやスクリプトでも読めるファイルになります。UTF-8 は現代のあらゆるものが想定する形式で、このサイトも他の場所ではこれで書きます。UTF-8 with a BOM は同じバイト列の先頭に3バイトの印を付けたものです。UTF-16 LE は Windows のプログラムが Unicode と呼ぶ形式で、サイズはおよそ2倍です。Windows-1252 は古い西欧向けの文字コードで1文字1バイトですが、注意が必要です。中国語・日本語・韓国語・キリル文字・ギリシャ文字・絵文字を表せず、書けない文字は疑問符になり、上のレポートで数えられます。それ以外のファイルの内容は変わりません。
タイミングを数える基準のフレームレートです。形式のページでは MicroDVD が必要とする値で、同形式は時間をフレーム番号で保存します。フレームレートのページでは、そのファイルがどのレートを前提に作られたか(字幕が合わせて作られた版)を指し、ページの2つ目の欄には実際に使う動画のレートを入れます。よく使われるのは 23.976、24、25、29.97、30、50、59.94、60 です。間違えると時間軸全体がずれます。フレームレートのページでは、ずれは固定量ではなく比率で生じます。
ファイルの文字コードは、そのテキストをバイトに変える規則で、字幕ファイルで目で見て分からない唯一の性質です。メモ帳、ブラウザ、放送サーバー、テレビは、いずれも伝えられるか推測する必要があり、推測が食い違うと、テキストはどの言語にも属さない記号として届きます。このページは、指定した文字コードでファイルを書き出すので、読む側が推測する必要がなくなります。
既定では、ファイルが来たときの文字コードをそのまま保ちます。ほとんどの場合それでよく、字幕を時間方向にずらすような操作が文字コードを書き換える理由はありません。UTF-16LE で来たファイルは UTF-16LE のまま出ていきます。この設定を変えるのは、目の前の何かが文字コードを名指ししているとき(納品仕様、ファイルを拒否するツール、間違った文字を出すプレーヤー)か、いろいろな場所から来たファイルをまとめて標準化するときです。
パネルの 4 つの選択肢は実際によく出るものです。UTF-8 はウェブと最近のツールが使い、このサイトのどの変換ページも既定で書くものです。印付き UTF-8 は同じバイト列の前に 3 バイトを足したもので、先頭バイトを見て決める Windows のプログラム向けです。UTF-16LE は Windows の字幕ツールが Unicode と呼ぶもので、すべての文字を 2 バイトで保存するため、ファイルはおよそ 2 倍の大きさになります。Windows-1252 は古い西欧の文字コードで、今も多くの欧州の放送ツールが書き、西欧諸語のアクセントは持てますがそれ以外は持てません。
最後の点は損失で、このページが実行前にそれを報告する理由です。日本語、中国語、キリル文字、ギリシャ文字の字幕を Windows-1252 で保存すると、その文字コードにバイトがない文字は疑問符として書かれます。ファイルが壊れるのではなく、正しい文字が消えるのです。ワークスペースの上のレポートがその数を数えて告げ、数は書き出し側と同じコード表から来るので、読んだ数がそのまま得られる疑問符の数です。0 でなければ別の出力先を選んでください。
このページの 2 つの表示欄は同じに見えることがあり、それは不具合ではなく想定どおりです。文字コードはバイトの性質で、表示欄は文字を持っています。変更はファイルを書き出す瞬間、つまりダウンロードするときに行われます。各ファイルの行は、どの文字コードとして読んだかを示し、書き出す文字コードが異なるときは 2 つ目のラベルを足します。どこにもアップロードされず、処理はブラウザの中で行われます。
例
UTF-8 で書かれた英語の字幕ファイル
入力
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.
既定であり、このサイトのほかのすべてのページが書く文字コードです。ファイルはもともと UTF-8 なので、出力は入力と同じになります。この例が固定するのは逆の事実です。文字コードを選んでもファイルのほかの部分は何も標準化されず、このページを開いただけで字幕の改行が失われたり、印が付いたり、タイムコードが変わったりはしません。
同じファイルを UTF-16LE で
入力
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.
Windows の字幕プログラムが Unicode と呼ぶもので、ファイルに最も大きな目に見える違いを生む文字コードです。すべての文字が 2 バイトになり、前に印が付き、結果はおよそ 2 倍の大きさになります。表示欄には見えません。表示欄は文字を持ち、違いはファイルマネージャーでのサイズとエディタでの文字コード表示に出ます。
日本語の字幕を Windows-1252 で
入力
1
00:00:01,000 --> 00:00:02,000
こんにちは
出力
1
00:00:01,000 --> 00:00:02,000
こんにちは
5 つの仮名と、それらを入れる余地のない文字コードです。この実行の損失レポートは疑問符になる 5 文字を数えます。表示欄には仮名が残ります。置き換えは読むときではなく書き出すときに行われるからです。この分離は意図的で、ファイルが何を言っているかと、こう書くことで何を失うかの両方を見られます。
よくある質問
字幕ファイルの文字コードと形式は何が違いますか?
形式はファイルが字幕番号、タイムコード、テキストをどう並べるかで、SRT、WebVTT、ASS などのことで、目で読めます。文字コードはその文字をどうバイトに変えるかで、目に見えません。同じ SRT ファイルが UTF-8、UTF-16、Windows-1252 で保存でき、どのエディタでも同じに見えます。このページは後者を変え、前者はそのままにします。変換ページは前者を変えます。
出力先の文字コードで表せない文字はどうなりますか?
疑問符として書かれ、このページがダウンロード前にその数を告げます。Windows-1252 は西欧の文字を扱え、日本語、中国語、韓国語、キリル文字、ギリシャ文字、絵文字のバイトを持たないため、それらの文字はどの形でも残せません。エラーにもならず、意味を保つ置き換えもありません。損失レポートの数は、書き出し側と同じ表から計算した、得られるファイルの中の疑問符の数です。
文字コードを変換しても 2 つの表示欄が同じに見えるのはなぜですか?
表示欄は文字を持ち、選択はバイトに関するものだからです。テキストはテキストで、各文字が 1 バイトか 2 バイトか 3 バイトかは、ダウンロード時にファイルを書き出す瞬間に決まります。キューの行は各ファイルを読んだ文字コードを示し、書き出す文字コードが異なるときは 2 つ目のラベルを足します。保存したファイルの文字コードは、お使いのエディタでも確認できます。
納品する字幕ファイルにはどの文字コードを選べばよいですか?
仕様が別のものを名指ししていなければ UTF-8 です。たいていは仕様が名指ししています。Windows-1252 は欧州の放送納品でよく使われ、西欧のテキストにだけ安全です。UTF-16LE は Windows 専用のオーサリングツールが要求することがあります。ファイルがすでに適切な文字コードなら、既定の「そのまま」が最も安全な答えです。何も問題が起きていないときにそうです。
UTF-16 を選ぶと字幕ファイルは 2 倍の大きさになりますか?
ほぼそのとおりです。すべての文字が 2 バイトで保存されるため、20 KB の英語字幕ファイルはおよそ 40 KB になります。その後の汎用の圧縮で違いの多くは消えます。先頭の印でさらに 2 バイト増えます。大きさは、UTF-16 が Windows で一般的になった性質との引き換えです。すべての文字が同じ幅になり、古いソフトウェアが扱いやすかったのです。
文字コードの一覧に UTF-16 のビッグエンディアンがないのはなぜですか?
誰も選ばないからで、既にその形のファイルはそのまま扱われます。UTF-16 ビッグエンディアンで来たファイルは、既定の設定ならビッグエンディアンのまま書き戻されます。文字コードを指定しなければ入力を保つからです。一覧は実際に要望のある 4 つですが、書き出し側はビッグエンディアンも扱うので、ファイルをそのまま保つときに黙って変わることはありません。