encode_www_form将空格转换为+而不是%20

ope*_*per 6 ruby ruby-on-rails ruby-on-rails-3

我试图从我使用Ruby on Rails的哈希创建http参数,我尝试过使用URI.encode_www_form(params),但这并没有正确生成参数.

下面是我的哈希

params['Name'.to_sym] = 'Nia Kun'
params['AddressLine1'.to_sym] = 'Address One'
params['City'.to_sym] = 'City Name'
Run Code Online (Sandbox Code Playgroud)

This method converts space to +,我想要的是它 convert space with %20

我收到了,"Name=Nia+Kun&AddressLine1=Address+One&City=City+Name"但我需要将这些空格转换为%20

Ing*_*ers 6

你可以这样做:

URI.encode_www_form(params).gsub("+", "%20")
Run Code Online (Sandbox Code Playgroud)

如果那确实是你所需要的。

另请参见何时将空格编码为加号 (+) 或 %20?为什么它这样做。


Tho*_*oub 0

您可以使用GSUB

myString.gsub(" ", "%20")
Run Code Online (Sandbox Code Playgroud)

引用文档

此方法不会转换 *、-、.、0-9、AZ、_、az,但会将 SP(ASCII 空格)转换为 +,并将其他转换为 %XX。