Декодирование URL с R для RFC1738 (PHP по умолчанию) - PullRequest
1 голос
/ 09 июля 2019

Мне нужно декодировать с помощью строк R , которые URL-адреса закодированы с использованием RFC 1738.

Эти строки поступают из запросов PHP и кодируются с помощью функции PHP http_build_query, которая по умолчанию использует RFC1738 .

Например, Hello, World! становится Hello%2C+world%21.

Вы можете легко попробовать его онлайн со следующим кодом PHP:

$data = array(
    'text' => 'Hello, world!'
);

echo http_build_query($data, '', '&');

К сожалению, базовая кодировка URL R использует 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 со знаком плюс, и я не хочу странных крайних случаев ...

...