UriEncoding

play.utils.UriEncoding
object UriEncoding

Provides support for correctly encoding pieces of URIs.

Attributes

See also
Graph
Supertypes
class Object
trait Matchable
class Any
Self type

Members list

Value members

Concrete methods

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

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.

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".

Value parameters

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.

s

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

Attributes

Returns

A decoded string in the outputCharset character set.

Throws
play.utils.InvalidUriEncodingException

If the input is not a valid encoded path.

def decodePath(s: String, outputCharset: Charset): String

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

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

Value parameters

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.

s

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

Attributes

Returns

A decoded string in the outputCharset character set.

Throws
play.utils.InvalidUriEncodingException

If the input is not a valid encoded path.

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

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.

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.

Value parameters

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.

s

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

Attributes

Returns

A decoded string in the outputCharset character set.

Throws
play.utils.InvalidUriEncodingException

If the input is not a valid encoded path segment.

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.

Value parameters

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.

s

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

Attributes

Returns

A decoded string in the outputCharset character set.

Throws
play.utils.InvalidUriEncodingException

If the input is not a valid encoded path segment.

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

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.)

Value parameters

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.

s

The string to encode.

Attributes

Returns

An encoded string in the US-ASCII character set.

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.

Value parameters

inputCharset

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

s

The string to encode.

Attributes

Returns

An encoded string in the US-ASCII character set.