Module URI::Escape
In: lib/uri/common.rb

Methods

decode   encode   escape   unescape  

Included Modules

REGEXP

Public Instance methods

decode(str)

Alias for unescape

encode(str, unsafe = UNSAFE)

Alias for escape

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]

     # File lib/uri/common.rb, line 280
280:     def escape(str, unsafe = UNSAFE)
281:       unless unsafe.kind_of?(Regexp)
282:         # perhaps unsafe is String object
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

Synopsis

  URI.unescape(str)

Args

str:Unescapes the string.

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]

     # File lib/uri/common.rb, line 315
315:     def unescape(str)
316:       str.gsub(ESCAPED) do
317:         $&[1,2].hex.chr
318:       end
319:     end

[Validate]