文字化けを直す
CSV やテキストファイルの文字コードを判定し、Excel やほかのソフトで正しく開ける形に変換します。化けてしまった文字列を貼り付けて元に戻すこともできます。すべてブラウザ内で処理し、ファイルは送信されません。
あなたのファイルは安全です — すべてブラウザ内で処理。サーバーには一切送信しません。
文字化けするファイルをここにドロップ
またはクリックして選択 — CSV・TXT・字幕(SRT/VTT)・ログなど、文字のファイルなら何でも
ファイルはブラウザ内で読み取られ、アップロードされません。
文字化けした CSV を Excel で開ける形にする手順
「取引先から届いた CSV を Excel で開いたら、全部『譁�ュ怜喧縺�』になった」。原因のほとんどは、ファイルを書いた側と読む側で文字コードの前提が違うことです。日本の Excel は CSV を Shift_JIS として開くので、UTF-8 で保存された CSV は化けます。逆に、Excel が保存した Shift_JIS の CSV を UTF-8 前提のシステムに入れると化けます。
このツールは、ファイルの中身から文字コードを判定し、目的のソフトで正しく開ける文字コードで保存し直します。ファイルはブラウザの中で読み取るだけで、どこにも送られません。
化けるファイルをドロップする
CSV でもテキストでも字幕ファイルでも構いません。ファイルの先頭から文字コードを判定し、プレビューを表示します。プレビューが正しく読めれば判定は合っています。
プレビューを確認する
読めない場合は「判定した文字コード」を切り替えます。候補には、その文字コードで読んだときに残る � の数が表示されるので、0 のものを選べばたいてい正解です。
保存する文字コードを選ぶ
Excel で開くなら「UTF-8(BOM 付き)」を選びます。BOM という3バイトの印があると Excel は UTF-8 と認識して化けません。古いシステムに入れるなら Shift_JIS、Web やプログラムに渡すなら UTF-8 を選びます。
変換して保存する
元のファイル名に _utf8 や _sjis を付けた名前で保存されます。元のファイルはそのままです。
貼り付けモードは、メールや画面で化けて見えた文字列を元に戻すためのものです。UTF-8 の文章が欧文(Windows-1252)として表示された「æ–‡å—化ã‘」のような化け方は完全に戻せます。一方、Shift_JIS の文章が UTF-8 として表示されて「�」ばかりになったものは、その時点で元の情報が失われているので戻せません。その場合はファイルの方を入れてください。
この文字化けツールの仕組み
文字コードの変換ライブラリは使っていません。ブラウザには Shift_JIS、EUC-JP、ISO-2022-JP、UTF-16 のデコーダが標準で入っている(TextDecoder)ので、判定と読み取りはそれで足ります。無いのは UTF-8 以外へ書き出すエンコーダで、これはブラウザ自身のデコーダに全バイト列を通して逆引き表を作ることで用意しています。
- 判定は「読んで比べる」
- 候補の文字コードそれぞれで厳密に(不正なバイトがあれば失敗する設定で)読み、成功したものを文章としての自然さで採点します。ひらがなが多く、常用外の漢字が少なく、� が無いほど高得点です。UTF-8 を Shift_JIS として読んだ文字列は常用外の漢字ばかりになるので、それで見分けます。
- エンコーダはデコーダから作る
- Shift_JIS の2バイト列は約 9,300 通りしかありません。ページを開いた後、最初に必要になった時点で全部をブラウザのデコーダに通し、文字→バイト列の対応表を作ります(十数ミリ秒)。表はブラウザが正しいと考える対応そのものなので、Windows の Excel が読む結果と一致します。
- NEC・IBM 拡張の重複
- CP932 には同じ文字に2つのバイト列が割り当てられた領域があります(NEC 選定 IBM 拡張と IBM 拡張)。書き出すときは Windows と同じく IBM 拡張の方を使います。
- 波ダッシュ問題
- Mac や最近のエディタが書く「〜」(U+301C)は CP932 に無く、Windows は「~」(U+FF5E)を使います。そのまま変換すると「?」になるので、波ダッシュ・全角マイナス・ダブルハイフンなど数文字は Windows 側の文字に置き換えて書き出します。
- 貼り付けの復元
- 「どの文字コードとして読んでしまったか」と「本当は何だったか」の組み合わせを総当たりします。読み違えた文字コードで文字列をバイト列に戻し、本当の文字コードで読み直して、最も自然な文章になった候補を出します。元の文字列より自然にならなければ、化けていないと判断します。
対応していない範囲
「�」に置き換えられた文字は復元できません(元のバイトが失われています)。ISO-2022-JP と UTF-16 への書き出しはできません(読み取りは可能)。1つのファイルに複数の文字コードが混在している場合は、多数を占める方で読まれます。