URI::Escape (Module)

In: uri/common.rb

Methods

decode   encode   escape   unescape  

Included Modules

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::SAFE.

Description

Escapes the string, replacing all unsafe characters with codes.

Usage

  require 'uri'

  enc_uri = URI.escape("http://foobar.com/?a=\11\15")
  p enc_uri
  # => "http://foobar.com/?a=%09%0D"

  p URI.unescape(enc_uri)
  # => "http://foobar.com/?a=\t\r"

[Source]

# File uri/common.rb, line 280
    def escape(str, unsafe = UNSAFE)
      unless unsafe.kind_of?(Regexp)
        # perhaps unsafe is String object

        unsafe = Regexp.new(Regexp.quote(unsafe), false, 'N')
      end
      str.gsub(unsafe) do |us|
        tmp = ''
        us.each_byte do |uc|
          tmp << sprintf('%%%02X', uc)
        end
        tmp
      end
    end

Synopsis

  URI.unescape(str)

Args

str:Unescapes the string.

Usage

  require 'uri'

  enc_uri = URI.escape("http://foobar.com/?a=\11\15")
  p enc_uri
  # => "http://foobar.com/?a=%09%0D"

  p URI.unescape(enc_uri)
  # => "http://foobar.com/?a=\t\r"

[Source]

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

[Validate]