文字化け解読・変換ツール
English version「縺ゅ↑縺溘」「‚ ‚È‚½」「café」「Ïðèâåò」のように化けた文字列を貼り付けると、どの文字コードで誤って読まれたのかを特定して逆変換し、元の文字を表示します。処理はブラウザ内で完結し、テキストはどこにも送信されません。
ブラウザ内で処理します。テキストはどこにも送信されません。
入力すると自動で解読します。主要な文字コードの組み合わせを総当たりし、文章らしい結果から順に表示します。
- UTF-8をShift_JISとして読んだ化け方(縺ゅ↑、繧イ繝シ繝) — 日本語CSVで最も多いパターン
- UTF-8をWindows-1252として読んだ化け方(é、’、日本) — Webやデータベースで最も多いパターン
- Shift_JISやEUC-JPを欧文コードページとして読んだ化け方(‚ ‚È‚½、¤¢¤Ê¤¿)
- EUC-JPをShift_JISとして読んだ半角カナの列(、「、ハ、ソ)
- UTF-8をGBK・Big5・EUC-KRとして読んだ化け方(銇傘仾、한êµì–´)
- 二重に化けたテキスト(é、’) — 自動で2回逆変換
このツールの仕組み
文字化けはデータの破損ではありません。バイト列はほとんどの場合そのまま残っていて、別の文字コードで読まれただけです。ですから直し方は機械的で、化けた文字列を「誤って読まれた文字コード」でいったんバイト列に戻し、それを「本来の文字コード」で読み直せば元に戻ります。このページはどちらの文字コードも知らないので、あり得る組み合わせをすべて試し、結果が本物の文章らしいかどうか(常用される漢字やハングルの割合、制御文字や置換文字の有無、欧文の単語に外国語の1文字が食い込んでいないか)で順位を付けます。最上位が正解であることがほとんどで、候補が複数ある場合は各候補の下にある「本来は〜を〜として読んでいた」の説明を、そのテキストの出どころと照らして選んでください。
処理はすべてブラウザ内で行われます。貼り付けたテキストはサーバーに送られないので、サポートの問い合わせ内容や未発表のセリフをそのまま貼って構いません。
復元できないケース
化けた文字列の中に「�」(Unicodeの置換文字)や、文字があるべき場所の「?」が含まれている場合、その文字を出力したプログラムの時点でバイトがすでに捨てられており、どんなツールでも取り戻せません。それ以外の部分は復元できることが多く、元の文章の見当を付けたり、パイプラインのどこで壊れたかを特定したりするには十分です。
一度化けた状態で保存され、さらにもう一度化けた「二重エンコード」は、éや’のような長い列として現れます。上位の候補には逆変換を2回まで自動で適用し、任意の結果を「この結果をさらに解読」で入力に戻すこともできます。
結果が教えてくれる、壊れた場所
候補に付いている文字コードの組み合わせが、そのまま診断結果です。「本来はUTF-8のバイト列を、Shift_JISとして読んでいた」なら、日本語Windowsの表計算ソフトがUTF-8のCSVを開いたときに起きる典型です。「UTF-8をWindows-1252として読んでいた」はWebやデータベースの定番で、接続やカラムの既定値がLatin-1のままになっています。「Shift_JISをWindows-1252として読んでいた」は、日本語ツールから書き出したファイルを日本語以外の環境で開いた場合です。誤った前提を置いている境界を直して書き出し直せば、文字列単位の修復は不要になります。
文字列ではなくファイルを直す
このページで組み合わせを特定したら、文字列を一つずつ貼るのではなく、ファイル全体を正しい文字コードで読み直してください。化けた文字の検索置換は組み合わせを取りこぼし、たまたま似ていた正常な文字まで壊します。翻訳CSVなら、このサイトの文字コードチェッカーでファイルが実際にどの文字コードなのかをビルド前に確認できます。