RFC 1738 を使用して URL エンコードされた R文字列でデコードする必要があります。
これらの文字列は PHP リクエストから取得され、デフォルトで RFC1738 を使用http_build_query
する PHP 関数でエンコードされます。
たとえば、 にHello, World!
なりHello%2C+world%21
ます。
次の PHP コードを使用して、オンラインで簡単に試すことができます。
$data = array(
'text' => 'Hello, world!'
);
echo http_build_query($data, '', '&');
残念ながら、R ベースの URL エンコーディングは RFC 3986を使用しますが、これは異なります!
utils::URLdecode("Hello%2C+world%21")
# "Hello,+world!"
# I was hoping httpuv would have an option for RFC 1738 but it doesn't!
httpuv::decodeURIComponent("Hello%2C+world%21")
# "Hello,+world!"
戻りたい"Hello, world!"
!Rでそれを行うにはどうすればよいですか?
記号をスペースに置き換えるだけ
+
でよろしいのですが、これがあなたの答えである場合は、なぜこれが正しいのかを正当化してください. これまでの私の調査では、RFC 1738 が正確にRFC 3986 にプラス記号が付いていることを示していませんでした。奇妙なエッジ ケースは必要ありません...