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

Webページなどの位置を指し示すURL(Uniform 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エンコード・デコードツール
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や外部コマンドに渡すことは危険であり、適切なサニタイズ処理(無害化)と組み合わせて使うことが推奨される。