Comment detail

URL特殊文字のエスケープ (Nested Flatten)

Rubyではcgiモジュールを使う。スペースは「+」に置換される。

1
2
require "cgi"
CGI.escape("~url quote") #=> "%7Eurl+quote"

uri でもでき、こちらのほうが柔軟です。

第二引数にマッチする文字がエンコードされます。デフォルトは URI::UNSAFE で確認できます。

1
2
3
4
5
6
7
8
9
require "uri"

p URI.escape("~url quote")
#=> "~url%20quote"
p URI.escape("~url quote", /./)
#=> "%7E%75%72%6C%20%71%75%6F%74%65"

p URI::UNSAFE
#=> /[^-_.!~*'()a-zA-Z¥d;\/?:@&=+$,\[\]]/n

Index

Feed

Other

Link

Pathtraq

loading...