特に「%2F」(%2f)が入っている場合、これは、半角の「/」を意味します。
これは、システム上、特別な意味を持つ文字であるため、変換(エンコード)されているのは、仕方がないのです。エンコードしないそのままの文字でサーバーにリクエストすると、サーバーが誤作動をする可能性が極めて高くなるでしょう。特に条件判断で利用される「!」や「=」や「<」や「>」及び、論理演算子「&」、「|」、「!」、ビット演算子「^」、並びに、代数演算子と呼ばれる加算記号「+」、減算記号「-」、乗算記号「*」、除算記号「/」や剰余計算記号「%」等、サーバを構築しているシステム内で特別な意味を持つので、プログラミング言語でいう「予約語」に相当します。
予約語とは、既に特別な意味を持っているので、変数などで使用できないというものです。
よって、サーバーとのやり取りで、パラメータとしてURLを入力する際、URLアドレスに使用することが不可能な文字を使用する場合はURLエンコードした文字へと置換する必要があります。
※ 重要 ※
エンコードされたURLアドレスは、そのままの状態で、ブラウザのアドレス欄にペーストしてEnterを押すと、GoogleChromeの場合は、入力されたものを「文字列」として処理するので、その「文字列」をキーワードとした検索を実行してしまいます。
ASCII文字とURLエンコードの対応表は次の通りです。
| 文字 | コード |
|---|---|
| SPACE(半角スペース) | %20 |
| ! | %21 |
| " | %22 |
| # | %23 |
| $ | %24 |
| % | %25 |
| & | %26 |
| ' | %27 |
| ( | %28 |
| ) | %29 |
| * | %2A |
| + | %2B |
| , | %2C |
| / | %2F |
| : | %3A |
| ; | %3B |
| < | %3C |
| = | %3D |
| > | %3E |
| ? | %3F |
| @ | %40 |
| [ | %5B |
| ] | %5D |
| ^ | %5E |
| ` | %60 |
| { | %7B |
| | | %7C |
| } | %7D |
| ~ | %7E |
この対応表さえあれば、元のURLアドレスに戻す(デコード)することが出来ます。
これで、意味不明なリンク先URLもほんの少しだけ読めます。