encode-for-uri
Codifica caracteres reservados para uso no caminho de um URI
Descrição
A função fn:encode-for-uri codifica caracteres reservados para uso no caminho de um URI. Os URIs exigem que alguns caracteres sejam escritos com o code point Unicode em hexadecimal precedido de %. Isso inclui os caracteres não ASCII e alguns ASCII, como caracteres de controle, espaços e vários outros.
Além disso, alguns caracteres servem de separadores das partes de um URI: ;,/?:@&=+$[]%. Se a string for usada como um segmento do caminho de um URI, onde esses separadores têm significado especial, fn:encode-for-uri codifica também esses separadores, junto com os outros caracteres especiais.
Como as funções fn:escape-html-uri e fn:iri-to-uri, esta função troca cada caractere especial por uma sequência %xx, em que xx são dois dígitos hexadecimais (em maiúsculas) que representam o caractere em UTF-8. Por exemplo, édition.html vira %C3%A9dition.html, com o é escrito como %C3%A9.
Das três funções de codificação, esta é a que mais codifica. Todos os caracteres são codificados, menos:
as letras de a a z e de A a Z
os dígitos de 0 a 9
hífen (-), sublinhado (_), ponto (.) e til (~)
Parâmetros |
Descrição |
|---|---|
uri-part:string() |
a parte do URI a codificar |
Exemplos
XPath |
Resultado |
|---|---|
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 |