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.)
The string to encode.
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.
An encoded string in the US-ASCII character set.
Provides support for correctly encoding pieces of URIs.
http://www.ietf.org/rfc/rfc3986.txt