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
Learn more about member selection
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
    @throws( ... )
  6. def decodePath(s: String, outputCharset: String): String

    Decode the path path of a URI.

    Decode the path 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
    InvalidEncodingException

    If the input is not a valid encoded path.

  7. 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(String,String) 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
    InvalidEncodingException

    If the input is not a valid encoded path segment.

  8. 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(String,String) 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.

  9. final def eq(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  10. def equals(arg0: Any): Boolean

    Definition Classes
    AnyRef → Any
  11. def finalize(): Unit

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  12. final def getClass(): Class[_]

    Definition Classes
    AnyRef → Any
  13. def hashCode(): Int

    Definition Classes
    AnyRef → Any
  14. final def isInstanceOf[T0]: Boolean

    Definition Classes
    Any
  15. final def ne(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  16. final def notify(): Unit

    Definition Classes
    AnyRef
  17. final def notifyAll(): Unit

    Definition Classes
    AnyRef
  18. final def synchronized[T0](arg0: ⇒ T0): T0

    Definition Classes
    AnyRef
  19. def toString(): String

    Definition Classes
    AnyRef → Any
  20. final def wait(): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  21. final def wait(arg0: Long, arg1: Int): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  22. final def wait(arg0: Long): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from AnyRef

Inherited from Any

Ungrouped