URLに現れる%20や%3Dの正体
Webブラウザのアドレスバーに「%20」や「%3D」といった記号列を見かけたことはありませんか。これらは、URLエンコード(パーセントエンコーディング)と呼ばれる仕組みによるものです。URLには使用できない文字(例:半角スペース、日本語、記号など)を含める必要がある場合、RFC 3986という国際標準に従い、各バイトを「%」+16進数2桁で表現します。例えば、半角スペースはASCIIコードで32(16進数で20)なので「%20」となり、等号「=」は61(16進数で3D)なので「%3D」となります。日本語のようなマルチバイト文字(UTF-8)も同様にエンコードされ、たとえば「東京」は「%E6%9D%B1%E4%BA%AC」と長く表示されます。このようなエンコードされたURLを人間が読める形に戻すのが、URLデコードの役割です。ログファイルやリダイレクト先のURLを調査する際、この知識は非常に役立ちます。