文字化け復元ツール
文字化けした文字列を貼り付けて「元に戻す」を押すと、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. 送信されません。変換はすべてブラウザの中で行われます。