文字化け復元ツール

文字化けした文字列を貼り付けて「元に戻す」を押すと、UTF-8・Shift_JIS・EUC-JP・Windows-1252 の組み合わせを総当たりして、日本語として読める結果を上から順に表示します。どの文字コードの食い違いで化けたのかも分かります。処理はすべてブラウザ内で行われ、入力内容が外部に送信されることはありません。

文字化けした文字列

例を試す:

化け方で原因が分かる — 文字化けの見分け表

文字化けは「書いたときの文字コード」と「読んだときの文字コード」の食い違いで起きます。化け方にはパターンがあるので、見た目からおおよその原因が分かります。下の例は「こんにちは」または「テスト」が化けたものです。

見た目の例原因(書いた → 読んだ)直せるか
縺薙s縺ォ縺。縺ッUTF-8 → Shift_JIS で読んだ多くは直せる(一部の文字が欠けることあり)
テスト(テスト)UTF-8 → Windows-1252(Latin-1)で読んだ多くは直せる
‚±‚ñ‚É‚¿‚ÍShift_JIS → Windows-1252 で読んだ直せる
、ウ、ヒ、チ、マEUC-JP → Shift_JIS で読んだ一部の文字が欠けやすい
����ɂ���(「�」が多い)Shift_JIS → UTF-8 で読んだ文字列からは直せない(ファイルを開き直す)

「�」(ひし形に?)は、読めないバイトを置き換えた記号です。置き換えた時点で元のバイトは消えているので、どのツールでも文字列からは復元できません。この場合は、元のファイルやデータを正しい文字コードを指定して開き直すのが唯一の方法です。

よくある場面と、根本的な直し方

場面よくある原因直し方
CSVをExcelで開くと化けるUTF-8(BOMなし)のCSVを、ExcelがShift_JISとして読むExcelの「データ → テキストまたはCSVから」で文字コードに UTF-8 を指定して取り込む。出力側で「UTF-8(BOM付き)」にする方法もある
古いシステムの出力やログが化けるShift_JIS(CP932)で出力されたファイルを、UTF-8前提のエディタで開くエディタの「エンコードを指定して開き直す」でShift_JISを選ぶ
Windowsのコマンドプロンプトで化けるコンソールの文字コード(既定は932)と、出力する文字コードが違うchcp 65001 でUTF-8に切り替える。元に戻すときは chcp 932
メールの件名や本文が化ける送信側と受信側で文字コードの扱いが違うメールソフトの「エンコード」から文字コードを変えて表示し直す

文字コードそのものの仕組み(バイト列と文字の対応、UTF-8とShift_JISの違い)は 文字コードをやさしく図解 で解説しています。バイト数の確認には 文字数・バイト数カウンター、URLのような「%E3%81%82」形式なら URLエンコード が使えます。

このツールの仕組み

化けた文字列を、間違って使われた文字コードでバイト列に戻し、本来の文字コードで読み直す、という手順を組み合わせごとに試しています。結果は、ひらがな・カタカナ・漢字が多く、「�」などが少ないものほど上位に並べています。2回以上化けた文字列や、ここにない文字コード(UTF-16、ISO-2022-JPなど)には対応していません。

よくある質問

Q. 文字化けはなぜ起きる?
A. 文字はバイト列として保存されていて、どの文字コードで書いたかと、どの文字コードで読んだかが食い違うと、別の文字として表示されます。

Q. 復元した結果の一部が「?」になるのはなぜ?
A. 化けた時点で、読めないバイトが別の記号に置き換えられて失われたためです。たとえばUTF-8をShift_JISで読むと、文字によっては最後の1バイトが失われます。前後の文脈から補ってください。

Q. 入力した文字列はどこかに送信される?
A. 送信されません。変換はすべてブラウザの中で行われます。