如果{"foo" => "yo%20daddy"}
通过 url,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"
但这似乎非常愚蠢。有更好的想法吗?