1

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 にプラス記号が付いていることを示していませんでした。奇妙なエッジ ケースは必要ありません...

4

0 に答える 0