ファイルは無傷。読み方が間違っている
字幕ファイルに入っているのはバイト列です。バイトを文字にするには、それがどの文字コードで書かれたかを知っていなければなりません。ここを間違えると文字化けになります。ファイルから 1 バイトも失われてはいません。正しい文字コードでもう一度読めば文字は戻ります。
つまり作業は二つに分かれます。元の文字コードを割り出すことと、プレイヤーが判別できる文字コードで保存すること。前者は試し読みと採点、後者は保存し直しです。この二つは別の問題を解決します。
五つの見た目、五つの原因
文字化けは偶然生まれるものではありません。見た目がそのまま原因を示しています:
- アクセント付きアルファベットの羅列(`ä½ å¥½`):UTF-8 の中国語を 1 バイト系の文字コードで読んだ形 — UTF-8 では漢字一文字が 3 バイトなので、1 バイトずつ読むと各バイトが別のアルファベットになります
- 漢字が連なっているのに常用漢字が一つもない(`浣犲ソ`):UTF-8 を GBK として読んだ形 — 2 バイトずつ組み直すので、どれも難漢字に当たります
- 通貨記号や数学記号の羅列:バイトが記号領域に落ちた形。Mac Roman や Latin-1 系で読まれたときによく出ます
- 制御文字の混入:バイトが見えない制御領域に落ちた形。画面上は空白や四角になります
- 四角い疑問符 `�`:これは置換文字であって文字化けではありません — 「ここに文字があったが、読んだ時点で失われた」という印です

置換文字が直せない理由
置換文字が境界線です。`�` が出ているのは、もっと前の段階(たいていは何かのソフトが一度読んで保存し直したとき)でバイトが捨てられたという意味で、失われた部分の記録はどこにもありません。この状態では逆算の材料がなく、誰にも直せません。
そこで修復ページは二つの場合を分けます。ファイルをアップロードすれば元のバイトが残っているので文字コードを一つずつ試せます。貼り付け内容に置換文字が入っていた場合は、「直せません。元ファイルをアップロードしてください」とはっきり出します。
逆の場合もあります。内容は完全に読めるのに、プレイヤーでは文字化けする。これはファイルのせいではなく、プレイヤーが文字コードを間違えたのです。ファイルを書き換えても無駄で、BOM 付き UTF-8 か GBK のコピーを渡せば済みます。

修復時に比べているもの
ツールは考えられる文字コードをすべて試し、結果ごとに採点します。常用文字の割合、アクセントの連なり、記号の連なり、漢字が難漢字の羅列になっていないか。点数のいちばん高いものが先頭に来ます。
点数がはっきり良くならない限りおすすめしません。微妙に読める程度の結果を渡すくらいなら、「これはそのまま読めます」と言うほうを選びます。二重に間違えられた文(保存で一度、修復でもう一度)には、上位候補にもう一段だけ逆算をかけます。

正しい文字コードで保存して完了
直したテキストも、プレイヤーが判別できる文字コードで保存して初めて役に立ちます。Windows のプレイヤーは BOM で判断することが多いので、BOM 付き UTF-8 がいちばん手間がありません。古い機器や一部のプレイヤーは GBK を求めます。選べるのは UTF-8、UTF-8(BOM 付き)、GBK、Big5、Shift_JIS、EUC-KR。入りきらないときは別のものに変えるよう促されます(GBK には韓国語を入れられません)。

関連ツールとガイド
操作の全手順は 字幕の文字化けを直す方法、SRT ファイルに実際に何が書かれているかは SRT ファイルの中身、文字コードは正常でも中身が汚い(ウォーターマーク、広告、聴覚障碍者向け表記)なら 字幕クリーニング。