読み方 : ユーアールエルデコード

URLデコード【URL decode】URLデコーディング/URL decoding

概要

URLデコードとは、URL中で特定の規則に従って変換された文字列を元の文字に戻す処理。「?」の後に続くパラメータ部などで、パーセント記号16進数を組み合わせた「パーセントエンコーディング」記法で記されたデータを人間が読める形に復元する操作である。
URLデコードのイメージ画像

Webページなどの位置を指し示すURLUniform Resource Locator)で使用できる文字はRFC 3986によって定められており、半角文字のアルファベット、数字、一部の記号(ハイフンアンダースコアピリオドチルダ)以外の文字はそのままでは使えない。

日本語や中国語などの非ASCII文字、スペース文字、「&」「=」「?」などの記号をURLに含める場合は、文字をUTF-8などのバイト列に変換した上で、各バイトを「%」に続く2桁の16進数で表現する。例えば、「東京」はUTF-8では6バイトになり、URLエンコードすると18文字の「%E6%9D%B1%E4%BA%AC」と表記される。スペースは「%20」または「+」で表現される。URLデコードはこれらの「%XX」形式の表記を読み取り、対応する元の文字列に変換する。

URLエンコード・デコードツール

入力した文字列をURLパラメータ形式(パーセントエンコーディング)に変換(エンコード)したり、URLパラメータを元の文字列に復元(デコード)します。
※ データはどこにも送信されません。

WebブラウザURLアドレスバーに表示する際、内部的にURLデコードを行って人間が読める形式で表示することが多い。一方、Webサーバ側ではリクエストとして受け取ったURLクエリパラメータをURLデコードして処理する。例えば、検索フォームに「東京 天気」と入力して送信すると、URLには「%E6%9D%B1%E4%BA%AC+%E5%A4%A9%E6%B0%97」のように渡され、サーバがこれをデコードして「東京 天気」として扱う。

プログラミング言語によってはURLデコードを行う標準関数が用意されている場合がある。JavaScriptの decodeURIComponent()、Pythonの urllib.parse.unquote()、PHPの urldecode() などである。セキュリティ上の観点から、デコードされた文字列をそのままSQL外部コマンドに渡すことは危険であり、適切なサニタイズ処理(無害化)と組み合わせて使うことが推奨される。

この記事の著者 : (株)インセプト IT用語辞典 e-Words 編集部
1997年8月より「IT用語辞典 e-Words」を執筆・編集しています。累計公開記事数は1万ページ以上、累計サイト訪問者数は1億人以上です。学術論文や官公庁の資料などへも多数の記事が引用・参照されています。