化けた文字列から元のバイト列を逆算し、読める候補を並べます
| 復元候補 | 元の符号 | 表示に使われた符号 | バイト数 | 点数 | 読み方 |
|---|
文字は最終的にバイト列として保存されます。どのバイトがどの文字を指すかを決めるのが文字コードで、UTF-8・Shift_JIS・EUC-JP・ISO-2022-JP はそれぞれ別の割り当てを持っています。保存したときの符号と、読み出したときの符号が食い違うと、同じバイト列が別の文字として表示されます。これが文字化けです。文字そのものが壊れたのではなく、読み方だけが間違っています。
読み方が間違っているだけなら、正しい読み方に直せば戻ります。このツールは、見えている文字列を「間違った符号で表示された結果」とみなして、その符号へ書き戻してバイト列を作り、別の符号で読み直します。UTF-8 の日本語を Latin-1 で表示した æ–‡å—化㑠のような形は、この手順でそのまま戻ります。
表示できないバイトは、その場で置換文字(? や �)に差し替えられます。差し替えられた時点で元のバイトの値は残っていないので、その位置は情報として失われています。化けた文字列をそのまま保存した場合、失われた位置はどの経路でも戻りません。ツールは入力に含まれる置換文字の数を数えて表示し、残りだけを戻した部分復元も候補として出します。
元のファイルが手元にあるなら、化けた文字列を直すより、正しい符号で読み直すほうが確実です。このツールが役に立つのは、元のファイルがもう無い場合(メールの本文、ログに残った文字列、貼り付けられた断片)です。
| 見えている形 | 元の符号 | 表示に使われた符号 | 戻せるか |
|---|---|---|---|
| æ–‡å—化㑠| UTF-8 | Latin-1 / Windows-1252 | 戻せる |
| “ú–{Œê | Shift_JIS | Latin-1 / Windows-1252 | 戻せる |
| ÆüËܸì | EUC-JP | Latin-1 / Windows-1252 | 戻せる |
| 繧ィ繝ゥ繝シ逋コ逕� | UTF-8 | Shift_JIS | 置換文字の位置を除いて戻せる |
| ???? | 不明 | 不明 | 戻せない(バイトが残っていない) |
復元はブラウザ標準の TextDecoder だけで行っています。TextDecoder は復号しかできないため、全バイト列を一度復号して「文字→バイト列」の逆引き表をその場で作り、書き戻しに使っています。入力した文字列がサーバーへ送られることはありません。
戻せないことがあります。表示のときに置換文字(? や �)へ置き換えられ、その状態で保存されると元のバイトが失われます。失われた位置はどの経路でも復元できません。このツールは入力に含まれる置換文字の数を数えて表示し、残りだけを戻した部分復元も候補として出します。
見えている文字列を「間違った符号で表示された結果」とみなし、その符号へ書き戻してバイト列を作り、別の符号で読み直します。TextDecoder は復号しかできないので、全バイト列を一度復号して文字からバイトへの逆引き表をブラウザ内で作っています。
点数は「文章として読める度合い」の目安で、正解の保証ではありません。上から順に読んで、意味の通るものを選んでください。同点のときは完全復元を部分復元より先に、UTF-8 を他の符号より先に並べています。
いいえ。復元はブラウザ標準の TextDecoder だけで行っており、入力内容がサーバーへ送信されることはありません。