URLエンコードしたときの小さな違い

下記のHttpUtility.UrlEncode(string)を調べていたときに見つけたのですが、
URLをエンコードしたとき、" "(半角スペース)は"+"(プラス)に変換されます。

あれ?でも空白って、"%20"じゃなかたっけ?とか思った人するどい

調べていくと、PHPでは、
urlencode:" "->"+"(_.は変換しない、~は%7e)
rawurlencode:" "->"%20"(_.は変換しない、~はバージョン依存、" "は%20)

どうやらrawurlencode は RFC1738とのこと

ちなみに使い分けについては、まだ調査中