encode-for-uri
Encodes reserved characters for use in the path of a URI
Description
The fn:encode-for-uri function encodes reserved characters for use in the path of a URI. URIs require that some characters be escaped with their hexadecimal Unicode code point preceded by the % character. This includes non-ASCII characters and some ASCII characters, namely control characters, spaces, and several others.
In addition, certain characters in URIs are separators that are intended to delimit parts of URIs, namely the characters ;,/?:@&=+$[]%. If the intended use of a string is as a segment of a URI path, where such separators have special meaning, the fn:encode-for-uri allows you to replace these escape these separator characters, while also escaping the other necessary special characters.
Like the fn:escape-html-uri and fn:iri-to-uri functions, this function replaces each special character with an escape sequence in the form %xx, where xx is two hexadecimal digits (in uppercase) that represent the character in UTF-8. For example, édition.html is changed to %C3%A9dition.html, with the é escaped as %C3%A9.
This function is the most aggressive of the three encoding functions. All characters except the following are escaped:
letters a through z and A through Z
digits 0 through 9
hyphen (-), underscore (_), period (.), tilde (~)
Parameters |
Description |
---|---|
uri-part:string() |
Examples
XPath |
Results |
---|---|
encode-for-uri(‘Sales % Numbers.pdf’) |
Sales%20%25%20Numbers.pdf |
encode-for-uri(’http://datypic.com/a%20URI#frag’) |
http%3A%2F%2Fdatypic.com%2Fa%2520URI%23frag |