字幕の文字化けを直す
字幕テキストを貼り付けることもできます
オプション
これは書き出しではなく読み込み方を変えます。通常は先頭のバイトから文字コードを判定します。BOM があればそれを使い、有効な UTF-8 なら UTF-8、それ以外は Windows-1252 とします。これで西欧のファイルは正しく読めますが、それ以外はすべて誤ります。日本語・中国語・韓国語・キリル文字のファイルは、アクセント記号だらけの意味不明な画面になります。ここで文字コードを指定すれば、推測は行われません。自動判定(既定)は何も変更しません。そのためそのままにしておくのが安全です。結果は UTF-8 で書き出される点に注意してください。ブラウザが生成できる文字コードは限られており、この一覧のどれも含まれません。それこそがこのページの狙いで、テキストは正しく、どのツールでも読める形で出てきます。
タイミングを数える基準のフレームレートです。形式のページでは MicroDVD が必要とする値で、同形式は時間をフレーム番号で保存します。フレームレートのページでは、そのファイルがどのレートを前提に作られたか(字幕が合わせて作られた版)を指し、ページの2つ目の欄には実際に使う動画のレートを入れます。よく使われるのは 23.976、24、25、29.97、30、50、59.94、60 です。間違えると時間軸全体がずれます。フレームレートのページでは、ずれは固定量ではなく比率で生じます。
字幕ファイルが、どの言語にも属さない記号の画面として届くことがあります。ファイルは壊れておらず、テキストも消えていません。読んだプログラムがバイトに間違った規則を当てたので、出てきた文字はそれらのバイトが別の規則で意味するものなのです。このページは、どの規則を使うかを指定でき、ファイルにほかの処理が行われる前にそれを適用します。
あなたが決める必要があるのは、バイトがたいてい何も言わないからです。字幕ファイルを開くプログラムは推測します。先頭の印で決まり、有効な UTF-8 で決まり、それ以外は何かに頼ります。よくあるのは、ファイルを書いた人ではなくツールを動かしている人のローカルコードページです。日本語、韓国語、中国語の字幕ファイルは推測が外れる最多の例で、それらの文字コードが作ったマシンの既定で、バイトが有効な UTF-8 にならないからです。どのプログラムが書いたかを知っている人は推測する側より多くを知っていて、このページはその知識を入れる場所です。
自動が既定で、推測がいつもどおりに走るという意味なので、すでに正しく読めるファイルでこのページを開いても何も変わりません。特定の文字コードを選ぶと、字幕が解析される前にその文字コードとして読まれます。このページに普通の意味での「適用」手順がないのはそのためで、正しく読めるファイルが同じ字幕、タイムコード、改行のまま、まったく別の文字の組として出てくることもあります。選んでいるのは編集ではなく読み方です。
結果について事前に知っておくべきことが 2 つあり、ページはどちらも報告します。1 つ目は、間違った選択は間違った選択に見えることです。記号はテキストではなく別の記号に変わり、試しても何も壊れません。2 つ目はブラウザの実際の制限です。ここにある文字コードのうち、ブラウザが読めても書けないものがあります。Shift-JIS、GBK、Big5、EUC-KR として修復したファイルは UTF-8 として書き戻されます。どこでも正しく読め、最近のツールが期待する形ですが、指定した文字コードではないので、下流が元の文字コードを要求するなら、ここで修復した後にデスクトップのツールで変換してください。
一覧の 1 項目には独自の説明が要ります。ISO-8859-1 と自動はブラウザでは同じコード表に届きます。標準がそのラベルを西欧のものと定めているからです。それでも持つ価値があるのは、自動にできないことをするからです。推測を覆します。バイトがたまたま有効な UTF-8 の並びになる西欧のファイルは自動では UTF-8 として読まれ、見える文字はファイルの中のものではありません。ISO-8859-1 を名指しすると西欧の読み方を強制します。12 形式すべてを受け付け、どこにもアップロードされず、ファイルはブラウザの中で読まれ、書き出されます。
例
すでに正しく読めるファイルで自動判定
入力
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.
出力
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.
既定の設定で、何も要求しない唯一のものです。自動を選んでいると文字コードを名指ししないので、ファイルはこのページができる前とまったく同じように読まれます。確信が持てないファイルで開いても安全で、問題がなければ何も起きず、特定の選択で悪化したときに戻す設定でもあります。
同じファイルを Shift-JIS として読む
入力
1
00:00:01,000 --> 00:00:02,000
こんにちは、いい天気ですね。
出力
1
00:00:01,000 --> 00:00:02,000
こんにちは、いい天気ですね。
同じファイルを 2 通りに読んだものです。バイトを Shift-JIS として読むと表示欄に入るのは最初から言おうとしていた日本語で、西欧のテキストとして読むと同じバイトが無関係なアクセント付き文字の列になります。それがこのページを探す原因の状態です。この例の両方の表示欄が読める版なのは、読み直しが字幕の解析前に行われるからです。間違った文字が見えていて正しい文字が見えない段階はありません。
自動判定が UTF-8 として読む西欧のファイル
入力
1
00:00:01,000 --> 00:00:02,000
Café Ã la carte
出力
1
00:00:01,000 --> 00:00:02,000
Café Ã la carte
難しい例で、ブラウザで自動と指定した文字コードが食い違う唯一の場合です。ファイルのバイトがたまたま有効な UTF-8 の並びになるため、推測は UTF-8 になり、渡される文字はファイルの中のものではありません。ISO-8859-1 を名指しすると西欧の読み方を強制します。どちらも同じコード表で、古い資料から誤解しやすい部分です。選択がするのは推測を覆すことです。
よくある質問
字幕ファイルが正しいテキストではなく変な文字になるのはなぜですか?
バイトが間違った規則で読まれたからです。ファイルには日本語、韓国語、キリル文字のテキストが、書いたプログラムの文字コードで入っていて、読むプログラムが別のもの、多くの場合はファイルではなくマシンのローカルコードページを仮定しています。何も壊れておらず、同じバイトを正しい規則で読めば正しいテキストになります。このページで文字コードを名指しすることがそれです。
字幕ファイルが実際にどの文字コードかを調べるにはどうすればよいですか?
たいていは何が作ったかから分かります。日本の Windows ツールで作った日本語ファイルは Shift-JIS が有力で、中国本土のものは GBK、台湾のものは Big5、韓国語は EUC-KR、キリル文字は多くの場合 Windows-1251 です。分からなければ試してください。間違った選択は記号を、正しい選択はテキストを返すので、ファイルについて何も知らなくても数秒で見分けられます。
間違った文字コードを選ぶとどうなりますか?
文字は別の間違った文字の組に変わり、それ以外は何も起きません。ディスク上の元のファイルはそのままで、どこにもアップロードも保存もされません。やり直しは無料です。気をつける結果は 1 つで、正しく読めるのに先頭に不自然に長い記号の列がある場合です。選択した文字コードが印を文字として読んだという意味なので、印を外すか別の文字コードを選んでください。
Shift-JIS を選んだのに修復した字幕ファイルが UTF-8 で書かれるのはなぜですか?
ブラウザがその文字コードを読めても書けないからです。Shift-JIS、GBK、Big5、EUC-KR として読んだファイルは UTF-8 として書き戻され、含まれるすべての文字を保持し、現在のほぼすべてのソフトウェアが期待する形になります。字幕のテキストは表示欄に見えるとおりで、変わったのは入れ物だけです。下流が元の文字コードを要求するなら、修復したファイルをデスクトップのツールで変換してください。
文字コードを修復すると字幕のテキストは変更されますか?
変更されません。ファイルのバイトは変えず、文字の追加、削除、置換もしません。変わるのはバイトをテキストに変える規則で、その後の処理はすべて正しいテキストで動きます。字幕番号、タイムコード、改行はファイル自身のもので、ここのほかの操作ページと同じです。
自動判定で十分ですか、いつも指定したほうがよいですか?
大半のファイルでは自動が正しく、正しく読めるファイルに何も言わせないのが既定の理由です。文字が明らかに間違っているとき、何がファイルを作ったかを知っているとき、1 つの出所から来たまとまりを 1 通りに読みたいときに指定してください。助けにならない場合も 1 つあり、ブラウザにデコーダーがまったくない文字コードのファイルは、どの選択肢でも間違ったままです。