パーセントエンコーディングパーセントエンコーディング (英: percent-encoding) とは、URIにおいて使用できない文字を使う際に行われるエンコード(一種のエスケープ)の名称である。 「%」を使用していることから、この名称で呼ばれている。一般にURLエンコードとも称される。 URLエンコードには、上記のパーセントエンコーディングによる符号化と以下に記述するapplication/x-www-form-urlencodedによる符号化の2種類がある。半角スペースはパーセントエンコーディングでは「%20」に符号化されるが、application/x-www-form-urlencodedによる符号化では「+」に符号化される。 概要URL Standardでは、URLのパス部分の構文解析の際、以下 (path percent-encode set) に該当する文字であれば、UTF-8で符号化のうえパーセントエンコードする旨を規定している (url-standard, 4.4 URL parsing, path state)。パーセントエンコードとは、バイトの並びについて各バイトを「%XX」(XXは十六進法)という文字列への変換である。
このほか、URLのユーザー情報・パスワードの部分では、さらに多くの文字がパーセント符号化の対象となる [1]。 たとえば「ウィキペディア」という文字列を、各種の文字コードを用いてパーセントエンコーディングで符号化すると以下のようになる。
URL Standardの登場以前より存在する定義として、rfc3986, 2.1. Percent-Encodingなどが存在する。 application/x-www-form-urlencodedHTTPのPOSTメソッドでWebフォームの文字列を送信する場合に、文字列はエンコードして送信される。その際の符号化方法はMIMEのContent-Typeがapplication/x-www-form-urlencodedで指定される。この符号化方法をURLエンコードと言うことがある。 この符号化方法は、url-standard, 5. application/x-www-form-urlencodedで定義されている。なお、標準文書として初めて登場したのはRFC 1866 HTML 2.0のSection-8.2.1であった。 また、複数のフォーム項目を送信する場合、各項目は「&」(アンパサンド)区切りで送信される。 脚注
参考文献
関連項目 |