字幕エンコード変換ツール

字幕ファイルに�や意味不明な文字が表示される場合、たいていは古いエンコードで保存されたファイルを、プレーヤーが別のエンコードとして読んでいます。このツールは選んだエンコードでファイルを読み込み、UTF-8で保存します。ファイルはブラウザの外に出ません。

字幕ファイルのエンコードを修正

エンコードを修復するには、字幕ファイル(.srt、.vtt、.ass、.smi など)をアップロードしてください。

使い方

  1. 字幕ファイルをアップロードします。対応している形式は.srt、.vtt、.ass、.ssa、.sbv、.sub、.smi、.txtです。
  2. ツールが最初のエンコードを選びます。ファイルが正しいUTF-8ならUTF-8、そうでなければ�が最も少なくなる古いエンコードです。この推測は外れることがあります。
  3. プレビューが正しく読めるまで「元のエンコード」を切り替えます。
  4. 「UTF-8 でダウンロード」をクリックします。拡張子はそのままで、名前に-utf8が付くので、movie.srtはmovie-utf8.srtになります。

ファイルに対して行うこと

  • 読み込めるエンコードは、UTF-8、EUC-KR/CP949、Shift-JIS、GB2312/GBK/GB18030、Big5、Windows-1252/Latin-1、Windows-1251です。
  • 保存したファイルにはバイトオーダーマーク(BOM)が付きません。変わるのはエンコードだけで、字幕の形式、時刻、テキストはそのままです。

言語別の古いエンコード

UTF-8が普及する前は、字幕ファイルは言語ごとに作られたエンコードで保存されていました。最後の列は、そのようなファイルに含まれるサンプルの単語をUTF-8として読んだときの表示です。

言語古いエンコードUTF-8で読んだ場合
韓国語EUC-KR / CP949안녕하세요 → �ȳ��ϼ���
日本語Shift-JISこんにちは → ����ɂ���
簡体字中国語GB2312 / GBK / GB18030你好世界 → �������
繁体字中国語Big5繁體中文 → �c�餤��
西ヨーロッパ言語Windows-1252 / Latin-1café → caf�
キリル文字Windows-1251Привет → ������

文字化けする理由

字幕ファイルに保存されているのはバイトで、各バイトがどの文字を表すかはエンコードによって決まります。EUC-KRで保存した韓国語のファイルをUTF-8として開くと、バイトの並びが正しいUTF-8にならないため、�が表示されます。

逆の場合もあります。Windows-1252を前提とするプログラムでUTF-8のファイルを開くと、caféがcaféと表示されます。このファイル自体には問題がなく、このツールでもUTF-8と判定されます。プログラムの側でUTF-8として読むように設定する必要があります。

よくある質問

プレビューは読めるのに、言語が違います。なぜですか?
東アジアのエンコードはバイトの範囲が重なっているため、EUC-KRの韓国語ファイルをGB18030やBig5で読むと、実在するものの意味をなさない漢字として表示されることがあります。プレビューの文字の種類が違う場合は、ファイルの言語に合ったエンコードに切り替えてください。
変換したのに、プレーヤーでまだ文字化けします。
古いプレーヤーやテレビの中には、ファイルの先頭にバイトオーダーマーク(BOM)がある場合にしかUTF-8として扱わないものがあり、このツールはBOMなしで保存します。プレーヤーに字幕のエンコード設定がないか探し、UTF-8に設定してください。
字幕の形式は変わりますか?
いいえ。形式も拡張子も同じままなので、.smiファイルはUTF-8の.smiファイルとして返ってきます。そのあとで形式を変えるには、SRT、VTT、ASS、SBVの各変換ツールを使ってください。
アップロードせずにテキストを貼り付けられますか?
いいえ。貼り付けたテキストはすでにブラウザやエディターで文字に変換されていて、元のバイトが残っていません。ファイルそのものをアップロードしてください。