特に「%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もほんの少しだけ読めます。