パーセントエンコーディング
表示
(URLエンコードから転送)
パーセントエンコーディング (英: 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は十六進法︶という文字列への変換である。 ●C0制御パーセントエンコード集合 (C0 control percent-encode set) ●C0制御文字︵0+0000 ヌル文字〜0+001F︶ ●コードポイント値U+007Eより上位の文字すべて ●U+0020 空白 ●U+0022 二重引用符"
●U+0023 番号記号 #
●U+003C 小なり <
●U+003E 大なり >
●U+0060 バッククオート `
●U+007B 開き波括弧 {
●U+007D 開き波括弧 }
このほか、URLのユーザー情報・パスワードの部分では、さらに多くの文字がパーセント符号化の対象となる
[1]。
たとえば﹁ウィキペディア﹂という文字列を、各種の文字コードを用いてパーセントエンコーディングで符号化すると以下のようになる。
●Shift_JIS - %83E%83B%83L%83y%83f%83B%83A
●EUC-JP - %A5%A6%A5%A3%A5%AD%A5%DA%A5%C7%A5%A3%A5%A2
●UTF-8 - %E3%82%A6%E3%82%A3%E3%82%AD%E3%83%9A%E3%83%87%E3%82%A3%E3%82%A2
URL Standardの登場以前より存在する定義として、rfc3986, 2.1. Percent-Encodingなどが存在する。
application/x-www-form-urlencoded[編集]
HTTPの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であった。 また、複数のフォーム項目を送信する場合、各項目は﹁&﹂︵アンパサンド︶区切りで送信される。脚注[編集]
- ^ url-standard, 4.4 URL parsing, path stateにユーザー名・パスワードの部分にはuserinfo percent-encode set(ユーザ情報%符号化集合)を用いてパーセント符号化を行う旨の規定がある。