如果{"foo" => "yo%20daddy"}
通过网址传递,则params [:foo]与URI.encode很好地匹配,解析为:
URI.encode("yo daddy")
#=> "yo%20daddy"
然而如果" foo"作为JSON参数出现,它没有。
URI.encode("yo%20daddy")
#=> "yo%2520daddy"
标准化的解决方案是
URI.encode(URI.decode("yo daddy"))
#=> "yo%20daddy"
URI.encode(URI.decode("yo%20daddy"))
#=> "yo%20daddy"
但这看起来很愚蠢。有更好的想法吗?