Swiftでurlをescapeする
&
と=
をescapeするために、customAllowedSetを作ります
import UIKit
var url = "https://www.google.co.jp/webhp?sourceid=chrome-instant&rlz=1C5CHFA_enJP574JP574&ion=1&espv=2&es_th=1&ie=UTF-8#safe=off&q=test"
var customAllowedSet = NSCharacterSet(charactersInString:"&=\"#%/<>?@\\^`{|}").invertedSet
var escapedString = url.stringByAddingPercentEncodingWithAllowedCharacters(customAllowedSet)
# => "https:%2F%2Fwww.google.co.jp%2Fwebhp%3Fsourceid%3Dchrome-instant%26rlz%3D1C5CHFA_enJP574JP574%26ion%3D1%26espv%3D2%26es_th%3D1%26ie%3DUTF-8%23safe%3Doff%26q%3Dtest"
Rubyでunescapeする
irb(main):003:0> require 'uri'
=> false
> escaped = "https:%2F%2Fwww.google.co.jp%2Fwebhp%3Fsourceid%3Dchrome-instant%26rlz%3D1C5CHFA_enJP574JP574%26ion%3D1%26espv%3D2%26es_th%3D1%26ie%3DUTF-8%23safe%3Doff%26q%3Dtest"
> URI.unescape(escaped)
=> "https://www.google.co.jp/webhp?sourceid=chrome-instant&rlz=1C5CHFA_enJP574JP574&ion=1&espv=2&es_th=1&ie=UTF-8#safe=off&q=test"