Module: URI::Escape

Module | URI::Escape
In: | 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

escape(str, unsafe = UNSAFE)

## 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 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

unescape(str)

## 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 uri/common.rb, line 315
        def unescape(str)
          str.gsub(ESCAPED) do
            $&[1,2].hex.chr
          end
        end

[Validate]