URLエンコード

Article on other languages:

del.icio.us del.icio.us
Digg Digg
Furl Furl
Reddit Reddit
Rojo Rojo
Add to OnlyWire

URLエンコード(ゆーあーるえるえんこーど)とは、URIにおいて使用禁止である値を使う際に行われる符号化の俗称である。RFC上ではPercent-Encodingという名称である。

概要

URIの規則を定める RFC 3986 では、URIにASCIIの非予約文字以外の文字データを用いる場合には、「%xx」(xxは16進数)という形でコードを表記することが定められている。その際にどの文字コードを用いるかは実装によって異なる。

たとえば「ウィキペディア」を、各種の文字コードを用いてURLエンコードすると以下のようになる。

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にはASCII範囲内であっても、スペースを含む記号(=,&,%,+)は使用できないので「%20」などのASCIIコードの16進表記に置き換えられる。スペースのASCIIコードは0x20である。

ただし、URLエンコードの変換方法は JavaScriptCGI では一部異なっている。スペースは JavaScript の場合には %20 に変換されるが、CGIでは + に変換される。また、変換はバイト単位で行われるため、Shift_JISなど2バイトコードの場合、第1バイトは16進に変換されるが、第2バイトはそれがASCIIの文字に対応する場合、そのまま文字として変換される。たとえば、「男」のShift_JISコードは 926A であるが、このURLエンコードは %92j となる(6A はASCIIコードでは j に対応する)。

また、CGIで複数の項目をURLエンコードする場合、各項目は & を接続する実装が多い。

関連項目

This article is from Wikipedia. All text is available under the terms of the GNU Free Documentation License.


Giant Panda

Mercedes Car
James Bond Guide
This site monitored by SitePinger.net