文字コード変換・文字化け復元

日本語の文字コードを確認・変換するツール。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-8Windows-1252縺薙s縺ォ縺。縺ッ
Shift_JISUTF-8こんにちは
EUC-JPShift_JIS裔ニ螢瘤ォ裔治裔識
EUC-JPWindows-1252åáÆå£óåᎫåᎡåᎯ

使い方

  1. 文字列を入力し、文字コードを選んでバイト列を確認する。
  2. 16進数のバイト列を入力し、各文字コードで復号した結果を比べる。
  3. 文字化けした文字列を入力し、復元候補から正しいものを選ぶ。

こんな用途に

  • 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相当で扱う。

関連ツール