🔧 文字化け修復
「ã\x81‚」「譁�喧縺�」のように壊れて表示されるテキストを貼り付けると、文字コードの取り違えを推定して復元します。UTF-8・Shift_JIS・EUC-JP の再デコードを試し、日本語らしさで採点して最有力候補を強調表示します。処理はすべてブラウザ内で行い、入力はどこにも送信しません。
入力
最有力の復元候補
—
他の復元候補
推定に使った各パターンの結果です。文脈に合うものを選んでコピーしてください。スコアは「日本語らしさ」の目安で、値が大きいほど尤もらしい候補です。
なぜ文字化けは起きるのか
文字は保存時に「文字コード(エンコーディング)」でバイト列に変換されます。文字化けは、保存したときのコードと読み込むときのコードが食い違うときに起こります。たとえば「あ」を UTF-8 で保存すると E3 81 82 という3バイトになりますが、これを Windows-1252(西欧向け1バイトコード)だと思って読むと、1バイトずつ別の文字に割り当てられ「ã‚」のように化けます。
このツールは逆の手順をたどります。まず化けた文字列の各文字を「1バイト」とみなしてバイト列に戻し(Windows-1252 の記号は元のバイト値へ復元)、そのバイト列を UTF-8 / Shift_JIS / EUC-JP として順に読み直します。正しいコードで読み直せたときだけ、ひらがな・カタカナ・漢字がきれいに並ぶため、その「日本語らしさ」を採点して最有力候補を選びます。
なお、化けの過程で情報が失われていると(置換文字「�」が混ざるなど)完全には戻せないことがあります。その場合は候補のどれも低スコアになり、復元できない旨を表示します。
解説
文字化けは、文字を保存したときの文字コード(エンコーディング)と、読み込んだときの文字コードが食い違うときに起こります。たとえば「あ」を UTF-8 で保存すると E3 81 82 という3バイトになりますが、これを西欧向けの1バイトコード Windows-1252 だと思って読むと、1バイトずつ別の文字に割り当てられ「ã‚」のように化けます。逆に Shift_JIS や EUC-JP のバイト列を UTF-8 として読めば「譁�喧縺�」のような漢字混じりの化け方になります。本ツールは、この「取り違え」を推定して元の文字へ戻します。
復元の手順は、化けを起こしたのと逆の道をたどります。まず化けた文字列の各文字を『1バイト』とみなしてバイト列に戻します(各文字コードを &0xFF でバイト化。Windows-1252 で €・'・'・–・— などの記号に化けている部分は、コード値ではなく元のバイト値へ正しく復元します)。次に、そのバイト列を UTF-8 / Shift_JIS / EUC-JP として順に読み直し、それぞれを復元候補とします。正しいコードで読めたときだけ、ひらがな・カタカナ・漢字が破綻なく並びます。
どれが正解かを見分けるため、各候補に『日本語らしさスコア』を付けます。ひらがな・カタカナ・漢字・全角記号を加点し、復元失敗の証拠である置換文字(U+FFFD「�」)や制御文字を減点して、文字数で正規化します。スコアが最も高い候補を『最有力』として強調表示し、他の候補も並べて比較できるようにしています。人間が最終的に文脈で選べるよう、決めつけずに複数案を示す設計です。
注意点として、化けの過程ですでに情報が失われている場合(一度化けたものをさらに別コードで保存した多重文字化け、途中で切り詰められたバイト列など)は、完全には復元できません。その場合はどの候補も低スコアになり、その旨を表示します。処理はすべてブラウザ内(お使いの端末内)で完結し、貼り付けたテキストはどこにも送信されません。オフラインでも利用できます。
よくある質問
どんな文字化けに対応していますか?
日本語でよくある「UTF-8 のテキストを Latin-1 / Windows-1252 で開いた化け(ã‚ など)」「Shift_JIS や EUC-JP を UTF-8 で開いた化け(譁�喧縺� など)」に対応しています。化けた文字を1バイトに戻し、UTF-8・Shift_JIS・EUC-JP の3通りで読み直して候補を出します。
スコアは何を表していますか?
復元後のテキストの『日本語らしさ』の目安です。ひらがな・カタカナ・漢字・全角記号が多いほど加点、復元失敗を示す置換文字『�』や制御文字が多いほど減点し、文字数で割った値です。値が大きい候補ほど尤もらしい復元です。あくまで推定の指標なので、最終判断は文脈で行ってください。
「�」(黒い菱形のはてな)が残るのはなぜですか?
それは置換文字(U+FFFD)で、そのバイトが選んだエンコーディングでは有効な文字として読めなかったことを表します。化ける過程でバイトが失われた・書き換わったなど、元に戻せない情報欠落があると残ります。他の候補で改善しないか確認してください。
うまく復元できないときはどうすればいいですか?
最有力候補のスコアが0以下のときは、多重の文字化けや途中で切れたテキストの可能性があります。可能であれば、化ける前のより完全な状態のテキストを用意し直すのが確実です。また、日本語以外の言語や特殊なエンコーディング(ISO-2022-JP など)は本ツールの対象外です。
半角カナや全角英数の化けも直せますか?
はい。復元後にそれらが現れる場合はスコアで正しく評価されます。ただし入力する文字化けテキストが正しくコピーできていることが前提です。表示上のフォント違いと文字化けは別物なので、コピー元で本当に文字が変わっているかも確認してください。
入力したテキストはサーバーに送られますか?
送られません。バイト化・再デコード・スコア計算まで、すべてブラウザ内(端末内)で処理します。機密を含むテキストでも外部に送信されず、オフラインでも動作します。
なぜ複数の候補を表示するのですか?
同じバイト列でも、どのエンコーディングで読むかで結果が変わり、機械的なスコアだけでは正解を1つに断定できない場合があるためです。UTF-8・Shift_JIS・EUC-JP の結果を並べ、人が文脈で最終判断できるようにしています。
文字化けを未然に防ぐには?
テキストの保存・読み込み・送受信で文字コードを統一するのが基本です。現在は UTF-8 が事実上の標準なので、ファイルは UTF-8 で保存し、メールやCSVでは相手側の想定コードを確認しましょう。CSV を Excel で開くときの化けは、UTF-8 でも BOM 付きにすると改善することがあります。