Web便利ツール集

ツール一覧 / 文字コード解析&文字化けレスキュー

文字コード解析&文字化けレスキュー(総当たり復元)ツール

テキストをUnicode・UTF-8・UTF-16・Shift_JIS・EUC-JPのバイト列(16進数・URLエンコード・エスケープシーケンス)に変換して比較できます。 「縺薙s縺ォ縺。縺ッ」のような文字化けも、文字コードの組み合わせを総当たりで試して元の文章に復元します。

0文字

テキストを入力すると、Unicode・UTF-8・UTF-16・Shift_JIS・EUC-JP のバイト列が即座に表示されます。

すべての処理はブラウザ内で完結し、入力したテキストは外部へ送信されません。

文字化けが発生する原因とは?

コンピューターの中では、文字はすべて「バイト列(数値の並び)」として保存されています。 どの数値をどの文字に対応させるかのルールが文字コードで、 例えば「あ」は UTF-8 では「E3 81 82」、Shift_JIS では「82 A0」と、文字コードによってまったく異なるバイト列になります。

文字化けは、保存したときの文字コードと、読み込むときの文字コードが食い違うことで発生します。UTF-8で保存したCSVをExcel(Shift_JISとして解釈)で開くと、「E3 81 82」が別の漢字やカナの組み合わせとして表示されてしまうのが典型例です。

文字化けの例(こんにちは)原因よくある場面
縺薙s縺ォ縺。縺ッUTF-8 の文章を Shift_JIS として表示UTF-8のCSVをExcelで開いた、古いメールソフトで受信した
ã“ã‚“ã«ã¡ã¯UTF-8 の文章を Latin-1 として表示海外製のソフトやWordPressのDB移行、APIのレスポンス
‚±‚ñ‚É‚¿‚ÍShift_JIS の文章を Latin-1 として表示Windowsで作ったテキストを海外製ツールで開いた
����ɂ���Shift_JIS の文章を UTF-8 として表示Windowsで作ったCSV・テキストをMacやWebブラウザで開いた

このツールの総当たり復元の仕組み

文字化けは、次のような流れで発生しています。

元の文章 →(元の文字コードで保存)→ バイト列 →(誤った文字コードで表示)→ 文字化け

つまり、文字化けしたテキストを「誤った文字コード」でバイト列に戻し、そのバイト列を「元の文字コード」で読み直せば、元の文章が復元できます。 ただし、どの組み合わせで化けたのかは見た目だけでは分かりません。

そこで本ツールでは、UTF-8・Shift_JIS・EUC-JP・UTF-16(LE/BE)・Latin-1 のすべての組み合わせで逆変換を行い、 結果を「ひらがな・カタカナや常用漢字の割合」「置換文字(�)や制御文字の有無」などから日本語としての自然さを採点して、読める可能性の高い順に表示しています。処理はすべてブラウザ内で行われ、一瞬で完了します。

なお、UTF-8として読み込んで「�」に置き換わった部分のように、表示の時点で元のバイトが捨てられてしまった箇所は、どの方法でも復元できません。

各文字コード(UTF-8, Shift_JIS等)の特徴

UTF-8
世界中の文字を扱えるUnicodeの符号化方式で、現在のWebやスマホ、Mac/Linuxの標準。英数字は1バイト、日本語のひらがな・漢字は主に3バイト、絵文字は4バイトで表現します。
UTF-16
Unicodeを2バイト単位(一部の文字は4バイト)で表す方式。JavaScriptやJava、Windowsの内部処理で使われます。エンディアン(バイトの並び順)の違いでLE/BEの2種類があります。
Shift_JIS
日本語Windowsで長く使われてきた文字コード(実際にはMicrosoft拡張のCP932が多い)。英数字1バイト・日本語2バイト。今でもExcelのCSVや業務システム、古いWebサイトで現役です。絵文字や一部の旧字体は表現できません。
EUC-JP
かつてUNIX/Linux系のシステムやPerl製CGI、古いWebサイトで使われていた日本語の文字コード。日本語は主に2バイトで、Shift_JISとはバイトの割り当てがまったく異なります。
Unicode(コードポイント)
文字そのものに割り振られた番号(例:「あ」= U+3042)。UTF-8やUTF-16はこの番号をバイト列に変換するルールで、HTMLの数値文字参照(あ)やプログラムのエスケープ(\u3042)でも使われます。

使い方

  1. 文字コード詳細解析: テキストを入力すると、各文字コードの16進数ダンプ・URLエンコード・エスケープシーケンスが即座に表示されます。 各欄の「コピー」でプログラムやデバッグにそのまま使えます。「1文字ずつの内訳」では文字ごとのバイト列を比較できます。
  2. 文字化けレスキュー: 文字化けしたテキストを貼り付けると、復元候補が自動で表示されます。読める文章になっている候補の「このテキストをコピー」を押してご利用ください。

このツールの安全性(ブラウザ完結)

本ツールの解析・変換・復元処理は、すべてお使いのブラウザ上で動くJavaScriptのみで行っています。 入力したテキストをサーバーへ送信・保存することは一切なく、ページを閉じると入力内容は消去されます。

よくある質問

入力したテキストはサーバーに送信されますか?
送信されません。文字コードの解析・変換・文字化けの復元は、すべてお使いのブラウザ内のJavaScript(TextEncoder / TextDecoder / encoding-japanese)で処理しています。社外秘の文書や顧客データの文字化けでも安心してお使いいただけます。
「�」(ひし形の中に?)が含まれる文字化けは直せますか?
「�」は、デコードできなかったバイトを置き換えた記号で、この時点で元のデータは失われています。そのため「�」になった部分は復元できません。元のファイルが残っている場合は、文字コード・改行コード変換ツールなどでファイルを正しい文字コードとして開き直してください。
復元候補が複数表示されるのはなぜですか?
文字化けは「元の文字コード」と「誤って表示した文字コード」の組み合わせで起こるため、本ツールはすべての組み合わせを試して、日本語として自然な順に並べています。通常は一番上の「最有力候補」が正解ですが、短いテキストでは判定が難しいため、他の候補もあわせてご確認ください。
Shift_JISの欄に「?」(3F)が出てきます。
絵文字や「①」以外の一部の記号、韓国語・中国語の簡体字など、Shift_JIS や EUC-JP で表現できない文字が含まれている場合です。実際のファイル変換でもこれらの文字は「?」に置き換わる(文字化けする)ため、送信先の文字コードがShift_JISの場合は使用を避けるのが安全です。