Packages

o

play.utils

UriEncoding

object UriEncoding

Provides support for correctly encoding pieces of URIs.

Source
UriEncoding.scala
See also

http://www.ietf.org/rfc/rfc3986.txt

Linear Supertypes
AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. UriEncoding
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  5. def clone(): AnyRef
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @native() @throws( ... )
  6. def decodePath(s: String, outputCharset: Charset): String

    Decode the path of a URI.

    Decode the path of a URI. Each path segment will be decoded using the same rules as decodePathSegment.

    s

    The string to decode. Must use the US-ASCII character set.

    outputCharset

    The charset of the encoding that the output should be encoded with. The output string will be converted from octets (bytes) using this character encoding.

    returns

    A decoded string in the outputCharset character set.

    Exceptions thrown

    play.utils.InvalidUriEncodingException If the input is not a valid encoded path.

  7. def decodePath(s: String, outputCharset: String): String

    Decode the path of a URI.

    Decode the path of a URI. Each path segment will be decoded using the same rules as decodePathSegment. No normalization is performed: leading, trailing and duplicated slashes, if present are left as they are and if absent remain absent; dot-segments (".." and ".") are ignored.

    Encoded slash characters are will appear as slashes in the output, thus "a/b" will be indistinguishable from "a%2Fb".

    s

    The string to decode. Must use the US-ASCII character set.

    outputCharset

    The name of the encoding that the output should be encoded with. The output string will be converted from octets (bytes) using this character encoding.

    returns

    A decoded string in the outputCharset character set.

    Exceptions thrown

    play.utils.InvalidUriEncodingException If the input is not a valid encoded path.

  8. def decodePathSegment(s: String, outputCharset: Charset): String

    Decode a string according to the rules for the "path segment" part of a URI.

    Decode a string according to the rules for the "path segment" part of a URI.

    s

    The string to decode. Must use the US-ASCII character set.

    outputCharset

    The charset of the encoding that the output should be encoded with. The output string will be converted from octets (bytes) using this character encoding.

    returns

    A decoded string in the outputCharset character set.

    Exceptions thrown

    play.utils.InvalidUriEncodingException If the input is not a valid encoded path segment.

  9. def decodePathSegment(s: String, outputCharset: String): String

    Decode a string according to the rules for the "path segment" part of a URI.

    Decode a string according to the rules for the "path segment" part of a URI. A path segment is defined in RFC 3986. In a URI such as http://www.example.com/abc/def?a=1&b=2 both abc and def are path segments.

    Path segment encoding differs from encoding for other parts of a URI. For example, the "&" character is permitted in a path segment, but has special meaning in query parameters. On the other hand, the "/" character cannot appear in a path segment, as it is the path delimiter, so it must be encoded as "%2F". These are just two examples of the differences between path segment and query string encoding; there are other differences too.

    When decoding path segments the decodePathSegment method should always be used in preference to the java.net.URLDecoder.decode method. URLDecoder.decode, despite its name, actually decodes the application/x-www-form-urlencoded MIME format which is the encoding used for form data in HTTP GET and POST requests. This format is suitable for inclusion in the query part of a URI. But URLDecoder.decoder should not be used for path segment encoding or decoding.

    s

    The string to decode. Must use the US-ASCII character set.

    outputCharset

    The name of the encoding that the output should be encoded with. The output string will be converted from octets (bytes) using this character encoding.

    returns

    A decoded string in the outputCharset character set.

    Exceptions thrown

    play.utils.InvalidUriEncodingException If the input is not a valid encoded path segment.

  10. def encodePathSegment(s: String, inputCharset: Charset): String

    Encode a string so that it can be used safely in the "path segment" part of a URI.

    Encode a string so that it can be used safely in the "path segment" part of a URI.

    s

    The string to encode.

    inputCharset

    The charset of the encoding that the string s is encoded with.

    returns

    An encoded string in the US-ASCII character set.

  11. def encodePathSegment(s: String, inputCharset: String): String

    Encode a string so that it can be used safely in the "path segment" part of a URI.

    Encode a string so that it can be used safely in the "path segment" part of a URI. A path segment is defined in RFC 3986. In a URI such as http://www.example.com/abc/def?a=1&b=2 both abc and def are path segments.

    Path segment encoding differs from encoding for other parts of a URI. For example, the "&" character is permitted in a path segment, but has special meaning in query parameters. On the other hand, the "/" character cannot appear in a path segment, as it is the path delimiter, so it must be encoded as "%2F". These are just two examples of the differences between path segment and query string encoding; there are other differences too.

    When encoding path segments the encodePathSegment method should always be used in preference to the java.net.URLEncoder.encode method. URLEncoder.encode, despite its name, actually provides encoding in the application/x-www-form-urlencoded MIME format which is the encoding used for form data in HTTP GET and POST requests. This encoding is suitable for inclusion in the query part of a URI. But URLEncoder.encode should not be used for path segment encoding. (Also note that URLEncoder.encode is not quite spec compliant. For example, it percent-encodes the ~ character when really it should leave it as unencoded.)

    s

    The string to encode.

    inputCharset

    The name of the encoding that the string s is encoded with. The string s will be converted to octets (bytes) using this character encoding.

    returns

    An encoded string in the US-ASCII character set.

  12. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  13. def equals(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  14. def finalize(): Unit
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  15. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  16. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  17. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  18. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  19. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  20. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  21. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  22. def toString(): String
    Definition Classes
    AnyRef → Any
  23. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  24. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  25. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @throws( ... )

Inherited from AnyRef

Inherited from Any

Ungrouped