文字化けを直す

CSV やテキストファイルの文字コードを判定し、Excel やほかのソフトで正しく開ける形に変換します。化けてしまった文字列を貼り付けて元に戻すこともできます。すべてブラウザ内で処理し、ファイルは送信されません。

あなたのファイルは安全です — すべてブラウザ内で処理。サーバーには一切送信しません。

文字化けするファイルをここにドロップ

またはクリックして選択 — CSV・TXT・字幕(SRT/VTT)・ログなど、文字のファイルなら何でも

ファイルはブラウザ内で読み取られ、アップロードされません。


文字化けした CSV を Excel で開ける形にする手順

「取引先から届いた CSV を Excel で開いたら、全部『譁�ュ怜喧縺�』になった」。原因のほとんどは、ファイルを書いた側と読む側で文字コードの前提が違うことです。日本の Excel は CSV を Shift_JIS として開くので、UTF-8 で保存された CSV は化けます。逆に、Excel が保存した Shift_JIS の CSV を UTF-8 前提のシステムに入れると化けます。

このツールは、ファイルの中身から文字コードを判定し、目的のソフトで正しく開ける文字コードで保存し直します。ファイルはブラウザの中で読み取るだけで、どこにも送られません。

1

化けるファイルをドロップする

CSV でもテキストでも字幕ファイルでも構いません。ファイルの先頭から文字コードを判定し、プレビューを表示します。プレビューが正しく読めれば判定は合っています。

2

プレビューを確認する

読めない場合は「判定した文字コード」を切り替えます。候補には、その文字コードで読んだときに残る � の数が表示されるので、0 のものを選べばたいてい正解です。

3

保存する文字コードを選ぶ

Excel で開くなら「UTF-8(BOM 付き)」を選びます。BOM という3バイトの印があると Excel は UTF-8 と認識して化けません。古いシステムに入れるなら Shift_JIS、Web やプログラムに渡すなら UTF-8 を選びます。

4

変換して保存する

元のファイル名に _utf8 や _sjis を付けた名前で保存されます。元のファイルはそのままです。

Shift_JIS の CSV を読み込んだ画面。判定した文字コードが Shift_JIS と表示され、プレビューに氏名・部署・内線の表が正しく読める状態で並んでいる。
画面 文字コードを判定して、正しく読めているかをその場で確認できます。

貼り付けモードは、メールや画面で化けて見えた文字列を元に戻すためのものです。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つのファイルに複数の文字コードが混在している場合は、多数を占める方で読まれます。

よくある質問

なぜ Excel で CSV を開くと文字化けするのですか?
日本語版の Excel は、CSV を開くときに文字コードを Shift_JIS(CP932)と決めて読みます。Web サービスや Mac、多くのプログラムが出力する CSV は UTF-8 なので、そのまま開くと化けます。UTF-8 のままでも、先頭に BOM という印が付いていれば Excel は UTF-8 と認識します。このツールの「UTF-8(BOM 付き)」はそのための出力です。
「譁�ュ怜喧縺�」のような化け方と「文字化ã‘」のような化け方は何が違うのですか?
どちらも UTF-8 の文章を別の文字コードとして読んだ結果です。前者は Shift_JIS として読んだとき、後者は欧文(Windows-1252)として読んだときの見え方です。逆に Shift_JIS の文章を UTF-8 として読むと「�」が並びます。見え方から、どう読み違えたかが分かります。
貼り付けた文字列が復元できないのはなぜですか?
文字列に「�」が含まれている場合、その文字は化けた時点で元のバイトが捨てられており、どんなツールでも取り戻せません。ファイルが手元にあるなら、文字列ではなくファイルを入れてください。ファイルには元のバイトが残っているので、正しい文字コードで読み直せます。
ファイルはどこかに送られますか?
送られません。文字コードの判定も変換も、お使いのブラウザの中で行います。取引先の顧客リストのように外に出せないファイルでも使えます。ファイルの中身やファイル名がサーバーに送られることはありません。
Shift_JIS で保存したら一部の文字が「?」になりました。
Shift_JIS(CP932)は Unicode より表せる文字が少なく、絵文字、一部の記号、簡体字・ハングル、「𠮷」のような拡張漢字は表せません。変換前に「次の文字は表せないため ? になります」と一覧を表示するので、それを見て UTF-8(BOM 付き)に切り替えるか、その文字を書き換えてください。
字幕ファイル(.srt / .vtt)の文字化けも直せますか?
直せます。字幕ファイルはただのテキストなので、CSV と同じように文字コードを判定して、動画プレーヤーや編集ソフトが読める UTF-8 で保存し直せます。海外から配布された字幕が化けるのは、ほとんどが文字コードの不一致です。
UTF-16 のファイルも扱えますか?
扱えます。BOM の有無にかかわらず UTF-16 を判定できます(BOM が無い場合は、英数字が 1 バイトおきに 0 になる並びから見分けます)。保存は UTF-8 か Shift_JIS、EUC-JP のいずれかになります。