メインコンテンツに移動

URL エンコードされた文字列をデコードする方法

デコードはパーセントエンコーディングの逆の処理です。各 %XX が 1 バイトになり、バイト列が UTF-8 テキストとして読み取られます。「コンポーネント」モードは decodeURIComponent() を使うため、元の値がそのまま得られます。

計算例

複数バイトの UTF-8 シーケンスは 1 文字になります。

入力
caf%C3%A9%20%26%20cr%C3%A8me
結果 · decodeURIComponent()
café & crème

%20 はスペースになりますが、+ はプラス記号のまま残ります。

入力
a+b%20c
結果 · decodeURIComponent()
a+b c

最後のシーケンスは 16 進数が 1 桁足りないため、ツールはエラーを表示します。

入力
%E0%A4%A
結果 · decodeURIComponent()
エンコード済みURLが無効です

足りない桁を補うと、3 バイトがデーヴァナーガリー文字 1 字にデコードされます。

入力
%E0%A4%A4
結果 · decodeURIComponent()
त

ツールの処理方法

  • %XX は 1 バイトを表し、連続するバイトはまとめて UTF-8 としてデコードされます。たとえば %C3%A9 は é になります。
  • プラス記号はスペースとして扱われず、+ は + のままです。HTML フォームから送られたテキストの場合は、デコード前に + を %20 に置き換えてください。
  • 不完全なシーケンスや不正な UTF-8 が含まれていると、入力全体がエラーとして拒否され、一部だけがデコードされることはありません。
  • 「完全な URL」モード(decodeURI)は、%26、%2F、%3F などの予約文字のエスケープをエンコードされたまま残し、URL の構造を変えません。

URL エンコードのガイド