字幕が文字化けするのはなぜ?

字幕の文字化けは、文字コードの食い違いが原因であることが多い問題です。元のファイルをUTF-8に変換し、プレビューとプレーヤーで表示を確認してください。

症状が意味すること

ファイルは、文字をすべて数字として保存します。文字コード(エンコーディング)は、どの数字がどの文字に当たるかを決めた対応表です。半角英数字はほとんどの表で同じ数字なので、英語の字幕はめったに壊れません。アクセント付きの文字、キリル文字、ギリシャ文字、アラビア文字、ヘブライ文字、中国語や日本語はそうはいきません。

表示される文字 本来の文字 何が起きたか
café café UTF-8のファイルがWindows-1252(西ヨーロッパ)として読み込まれた
Γειά σου Γειά σου UTF-8のファイルがWindows-1252として読み込まれた
Ïðèâåò Привет Windows-1251(キリル文字)のファイルがWindows-1252として読み込まれた
caf� café Windows-1252のファイルがUTF-8として読み込まれた
caf? または ??????? café 文字を保存できないプログラムで保存されたため、元の文字が失われた

アクセント付きの文字1つが2文字(é、è)になっている場合は、ほぼ確実にUTF-8のファイルが古い方式で読み込まれています。疑問符の入った黒いひし形(�)は、たいてい逆の状況です。古い文字コードのファイルがUTF-8として読み込まれています。

変換する前に、元のファイルを確認してください。間違った文字や置換文字がすでにテキストに保存されている場合は、文字コードを変えても元に戻りません。壊れていないコピーを使ってください。éのように壊れた文字がそのまま保存されたファイルには、別途テキストの修復が必要です。

ファイルを直す:UTF-8で保存する

  1. 字幕の文字コード修正を開き、字幕ファイルを追加します。
  2. ツールが文字から文字コードを推定し、判別の確度と最初の20行を表示します。
  3. その行を読みます。文字が正しく見えない場合は、別の 文字コード を選びます。プレビューはすぐに更新されます。
  4. ファイルをダウンロードします。行、時刻、改行はそのままで、UTF-8で保存されます。

字幕の文字コード修正の画面。検出した文字コード、確度、日本語ファイルの最初の数行が表示されている

たとえば、shift_jisで保存された次の日本語の行は、そのまま判別され、1文字も変えずにUTF-8で保存されます。

1
00:00:01,000 --> 00:00:03,000
こんにちは!お元気ですか?これは日本語字幕の文字コードを確かめるためのテストです。
1
00:00:01,000 --> 00:00:03,000
こんにちは!お元気ですか?これは日本語字幕の文字コードを確かめるためのテストです。

推定が外れることがある理由

ツールが見られるのはバイト列だけです。アクセント付きの文字が多い長いファイルは、簡単に判別できます。アクセント付きの単語が1、2語しかない短いファイルは、複数の文字コードに当てはまる可能性があります。そのため、確信が持てないときはページが知らせ、プレビューの確認をお願いします。中央ヨーロッパの言語のように、文字を共有する言語は、手動で選ぶ必要が出やすくなります。

よくある間違い

  • ファイルを2回変換する:すでにUTF-8のファイルに古い文字コードを指定すると、éのような文字化けを自分で作ってしまいます。プレビューが正しく見えない場合を除き、検出された値のままにしてください。
  • 古いエディターで保存し直す:テキストエディターによっては、既定でシステムの文字コードで保存します。UTF-8で保存するか、ツールからもう一度ダウンロードしてください。
  • フォントのせいにする:プレビューでは文字が正しいのに、テレビでは四角い枠が出る場合は、テレビのフォントにその文字がない可能性があります。これはプレーヤーの問題で、文字コードの問題ではありません。

文字が正しく表示されたら、聴覚障害者向けの注記を削除したり、ファイルを別の形式に変換したりできます。

よくある質問

字幕に最適な文字コードは何ですか?

UTF-8です。あらゆる言語の文字を保存でき、最近のプレーヤー、テレビ、YouTube、動画編集ソフトで読み込めます。古いファイルは、Windows-1252やWindows-1251のような地域別の文字コードで保存されていることがよくあります。

プレーヤーの設定を変えるだけで直せますか?

場合によります。字幕の文字コードを選べるプレーヤーもありますが、その設定が効くのはその機器と、その1種類のファイルだけです。元のファイルをUTF-8に変換すれば、UTF-8に対応するプレーヤーで読めるようになります。フォントに文字がない場合は、プレーヤーかフォントを変更する必要があります。

ファイルの中身そのものが「?」になっています。元の文字を復元できますか?

できません。ファイルに本物の疑問符が入っている場合、元の文字は保存した時点で失われています。別の字幕ファイルを探してください。

BOMとは何ですか?必要ですか?

バイトオーダーマーク(BOM)は、ファイルの先頭に付ける見えない印で、UTF-8であることを示します。ほとんどのプレーヤーでは不要です。古いWindowsのプログラムで文字化けが残る場合にだけ有効にしてください。

ファイルがブラウザーの外に出ることはありません。