La codificación porcentual de URL representa texto UTF-8 mediante escapes de byte %HH. Esta herramienta sigue el comportamiento de encodeURIComponent: conserva letras, dígitos y -_.!~*'(), y escapa los demás bytes, incluidos los delimitadores de URL y el texto no ASCII.
Codifica segmentos de ruta o valores de consulta por separado antes de construir la URL para que espacios, &, =, ? y Unicode no alteren su estructura. La herramienta no analiza una URL completa ni interpreta + como espacio, rechaza secuencias % mal formadas y codifica, pero no cifra.
# Encoding
printf 'Hello, World!' | jq -sRr @uri
# Output: Hello%2C%20World%21
# Decoding
printf 'Hello%2C%20World%21' | jq -sRr @urid
# Output: Hello, World!
// Encoding
let encoded = encodeURIComponent("Hello, World!");
console.log(encoded);
// Output: Hello%2C%20World%21
// Decoding
let decoded = decodeURIComponent("Hello%2C%20World%21");
console.log(decoded);
// Output: Hello, World!
package main
import (
"fmt"
"net/url"
)
func main() {
// Encoding
encoded := url.QueryEscape("Hello, World!")
fmt.Println(encoded)
// Output: Hello%2C+%21World%21 (QueryEscape uses + for spaces)
// Decoding
decoded, _ := url.QueryUnescape("Hello%2C%20World%21")
fmt.Println(decoded)
// Output: Hello, World!
}
// Encoding
$encoded = urlencode("Hello, World!");
echo $encoded . "\n";
// Output: Hello%2C+%21World%21
// Decoding
$decoded = urldecode("Hello%2C%20World%21");
echo $decoded . "\n";
// Output: Hello, World!