文字コード変換・文字化け復元
日本語の文字コードを確認・変換するツール。CSVやメールの文字化け原因の調査、レガシーシステムとの連携時のバイト列確認に使える。
文字列 → バイト列
7文字
16進数(10バイト)
82 a0 82 a2 82 a4 20 41 42 43
パーセントエンコード
%82%A0%82%A2%82%A4%20%41%42%43
バイト列 → 文字列
「82 a0」「%82%A0」「0x82,0xa0」「\\x82\\xa0」形式に対応。
17文字
| UTF-8 | ������ |
|---|---|
| Shift_JIS | あいう |
| EUC-JP | ��� |
| Windows-1252 | ‚ ‚¢‚¤ |
文字化け復元
文字化けした文字列を誤って解釈された文字コードでバイト列へ戻し、別の文字コードで読み直した候補を表示。
9文字
| 誤って読んだ文字コード | 本来の文字コード | 復元結果 |
|---|---|---|
| UTF-8 | Windows-1252 | 縺薙s縺ォ縺。縺ッ |
| Shift_JIS | UTF-8 | こんにちは |
| EUC-JP | Shift_JIS | 裔ニ螢瘤ォ裔治裔識 |
| EUC-JP | Windows-1252 | åáÆå£óåᎫåᎡåᎯ |
使い方
- 文字列を入力し、文字コードを選んでバイト列を確認する。
- 16進数のバイト列を入力し、各文字コードで復号した結果を比べる。
- 文字化けした文字列を入力し、復元候補から正しいものを選ぶ。
こんな用途に
- CSVやメール、古いWebページの文字化け原因を調べたいとき。
- Shift_JISやEUC-JPのシステムへ送るバイト列を確認したいとき。
- ログやパケットに出ている16進数のバイト列を文字列に戻したいとき。
仕組み
- 復号はブラウザのTextDecoder(WHATWG Encoding Standard)を使用。
- 符号化は全バイト列をTextDecoderで復号して逆引き表を作り、文字ごとに置き換える。
- 文字化け復元は、誤って解釈された文字コードでバイト列へ戻し、別の文字コードで読み直す。
確認ポイント
- 「縺薙s縺ォ縺。縺ッ」のような漢字の羅列は、UTF-8をShift_JISとして読んだ典型的な文字化け。
- 「ã“ã‚“」のような記号混じりは、UTF-8をWindows-1252(Latin-1)として読んだ文字化け。
- 文字化けした時点で失われたバイトがあると、完全には復元できない。
手元でやるには
Shift_JISからUTF-8へ変換
必要環境: iconv(macOS/Linux標準搭載が多い)iconv -f SHIFT_JIS -t UTF-8 input.txt > output.txtバイト列を16進数で表示
必要環境: xxd(macOS/Linux標準搭載が多い)printf 'あ' | iconv -t SHIFT_JIS | xxdよくある質問
文字化けはどうやって復元する?
文字化けした文字列を、誤って解釈された文字コードでバイト列へ戻し、本来の文字コードで読み直す。組み合わせごとに試し、復元できた候補を表示する。
Shift_JISとCP932(Windows-31J)の違いは?
ブラウザのShift_JISはWHATWG Encoding Standardに従い、①や髙などのNEC・IBM拡張文字を含むCP932相当で扱う。