CreaTools LogoCreaTools
URL Encode

%82%A0 は何文字?URLの文字コードをパッと見で判別するコツ

2026-02-14

結論:先頭バイトのパターンで9割わかる

URLに %82%A0 とか %E3%81%82 とか並んでいるのを見て「これ何の文字?」となった経験はないだろうか。

実は、先頭1〜2バイトのパターンを覚えるだけで、どの文字コードか即座に判別できる。

見えるパターン文字コード具体例(「あ」)
%E3%81%82 のように %E + 2バイトUTF-8%E3%81%82
%82%A0 のように %8%9 で始まるShift-JIS%82%A0
%A4%A2 のように %A%F の高バイト2つEUC-JP%A4%A2
%1B%24B が含まれるISO-2022-JP%1B%24B%24%22%1B%28B

UTF-8 の見分け方

特徴:日本語は必ず3バイト(%XX が3個セット)

UTF-8 で日本語1文字は 3バイト になる。パーセントエンコードすると %XX%XX%XX の3個セットが繰り返される。

あいう → %E3%81%82%E3%81%84%E3%81%86
         ~~~~~~~~~ ~~~~~~~~~ ~~~~~~~~~
         あ(3byte)  い(3byte)  う(3byte)

決め手:先頭バイトが %E3%E9

日本語でよく使う文字(ひらがな・カタカナ・常用漢字)の先頭バイトは %E3%E9 の範囲に集中している。

文字種先頭バイト
ひらがな%E3%81%E3%82あ = %E3%81%82
カタカナ%E3%82%E3%83ア = %E3%82%A2
漢字(基本)%E4%E9日 = %E6%97%A5

判別のコツ: %E で始まるパーセントエンコードが3個並んでいたら、まず UTF-8。


Shift-JIS の見分け方

特徴:日本語は2バイト(%XX が2個セット)

Shift-JIS で日本語1文字は 2バイト%XX%XX の2個セットになる。

あいう → %82%A0%82%A2%82%A4
         ~~~~~~ ~~~~~~ ~~~~~~
         あ      い      う

決め手:先頭バイトが %82%9F または %E0%EF

Shift-JIS の日本語の先頭バイトは2つの範囲に分かれる。

文字種先頭バイト
ひらがな%82あ = %82%A0
カタカナ%83ア = %83%41
記号%81。= %81%42
漢字(第1水準)%88%9F亜 = %88%9F
漢字(第2水準)%E0%EF

判別のコツ: %82%83 が頻出し、2バイトごとに区切れるなら Shift-JIS。 Yahoo! JAPAN の検索クエリなど、大手サイトでも現役で使われている。

よく見かける実例

Yahoo! JAPAN 検索:
search.yahoo.co.jp/search?p=%93%FA%96%7B%8C%EA
                             ~~~~~~ ~~~~~~ ~~~~~~
                             日      本      語

EUC-JP の見分け方

特徴:日本語は2バイト、どちらも %A1%FE の高バイト

EUC-JP も2バイトだが、Shift-JIS との違いは 両方のバイトが %A1 以上 であること。

あいう → %A4%A2%A4%A4%A4%A6
         ~~~~~~ ~~~~~~ ~~~~~~
         あ      い      う

決め手:%A で始まるバイトが連続

文字種先頭バイト
ひらがな%A4あ = %A4%A2
カタカナ%A5ア = %A5%A2
漢字%B0%F4亜 = %B0%A1
記号%A1%A2。= %A1%A3

判別のコツ: 2バイトとも %A%F の範囲なら EUC-JP の可能性が高い。 古い Linux/Unix 系のWebサーバーや CGI で見かける。

Shift-JIS との見分けポイント

EUC-JP と Shift-JIS は同じ2バイトだが、バイト値の範囲が違う。

先頭バイト2番目のバイト
Shift-JIS%81%9F, %E0%EF%40%FC(低バイトも含む)
EUC-JP%A1%FE%A1%FE(常に高バイト)

最も簡単な判別法: 2番目のバイトが %4%5 など低い値を含むなら Shift-JIS。%A 以上ばかりなら EUC-JP。


ISO-2022-JP の見分け方

特徴:エスケープシーケンスが含まれる

ISO-2022-JP は他の文字コードとまったく異なり、エスケープシーケンス(%1B で文字セットを切り替える方式。

あいう → %1B%24B%24%22%24%24%24%26%1B%28B
         ~~~~~~~ ←日本語モード開始
                                    ~~~~~~~ ←ASCIIモード復帰

決め手:%1B%24B%1B%28B

シーケンス意味
%1B%24BJIS X 0208(日本語)モードに切り替え
%1B%28BASCII モードに復帰

判別のコツ: %1B が見えたら ISO-2022-JP 確定。 主に日本語メール(RFC 2022)で使用される。現代のWebではほぼ見かけない。


実践:クイズ形式で判別してみる

以下のURLエンコードされた文字列、何の文字コードか?

Q1

%93%8C%8B%9E%93%73
答え

Shift-JIS(「東京都」)

先頭バイト %93, %8B, %93%81%9F の範囲 → Shift-JIS。

Q2

%C5%EC%B5%FE%C5%D4
答え

EUC-JP(「東京都」)

すべてのバイトが %A1%FE の範囲 → EUC-JP。

Q3

%E6%9D%B1%E4%BA%AC%E9%83%BD
答え

UTF-8(「東京都」)

%E6, %E4, %E9 で始まる3バイトセット → UTF-8。

Q4

%1B%24B%45%6C%35%7E%45%54%1B%28B
答え

ISO-2022-JP(「東京都」)

%1B%24B(エスケープシーケンス)→ ISO-2022-JP 確定。


早見表:バイトパターン一覧

チェックポイント該当する文字コード
%E3%E9 で始まる3バイトセットUTF-8
%C2%C3 で始まる2バイトセットUTF-8(ラテン文字)
%82, %83 で始まる2バイトセットShift-JIS(かな)
%88%9F で始まる2バイトセットShift-JIS(漢字)
両バイトとも %A1%FEEUC-JP
%1B が含まれるISO-2022-JP
%20%7E のみ(ASCII範囲)文字コード不問(ASCII共通)

自動判別できないケースに注意

文字コードの判別は万能ではない。以下のケースでは誤判別が起きやすい。

  • 短い文字列(1〜2文字): バイト数が少なすぎてパターンが確定しない
  • ASCII文字のみ: hellohello はどの文字コードでも同一
  • Shift-JIS と EUC-JP の一部漢字: バイト範囲が重なる領域がある

迷ったらURLエンコード/デコードツールの自動判別機能を使ってみてほしい。バイト列から文字コードを推定して、正しくデコードしてくれる。


まとめ

  1. %E + 3バイト → UTF-8
  2. %82%9F + 2バイト → Shift-JIS
  3. 両バイト %A 以上 → EUC-JP
  4. %1B あり → ISO-2022-JP

これだけ覚えておけば、ログやURLを見たときに「どの文字コードか」を瞬時に判断できる。 デバッグや問い合わせ対応のスピードが確実に上がるはずだ。