1

我需要使用使用 RFC 1738 进行 URL 编码的 R字符串进行解码。

这些字符串来自 PHP 请求,并使用默认使用 RFC1738http_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