Synopsis
URI.escape(str [, unsafe])
Args
| str: | String to replaces in.
|
| unsafe: | Regexp that matches all symbols that must be
replaced with codes. By default uses REGEXP::UNSAFE.
|
Description
Escapes the string, replacing all unsafe characters with codes.
Usage
require 'uri'
enc_uri = URI.escape("http://example.com/?a=\11\15")
p enc_uri
# => "http://example.com/?a=%09%0D"
p URI.unescape(enc_uri)
# => "http://example.com/?a=\t\r"
[Source]
280: def escape(str, unsafe = UNSAFE)
281: unless unsafe.kind_of?(Regexp)
282:
283: unsafe = Regexp.new(Regexp.quote(unsafe), false, 'N')
284: end
285: str.gsub(unsafe) do |us|
286: tmp = ''
287: us.each_byte do |uc|
288: tmp << sprintf('%%%02X', uc)
289: end
290: tmp
291: end
292: end