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