16 lines
357 B
Text
16 lines
357 B
Text
val finish = fn(s) {
|
|
b2s(map(
|
|
less(split(s, delim="%"), of=1),
|
|
by=fn(x) { number x, fmt=16 },
|
|
))
|
|
}
|
|
val decode = fn(s) {
|
|
replace(
|
|
s,
|
|
by=re/(%[0-9A-Fa-f]{2})+/,
|
|
with=finish,
|
|
)
|
|
}
|
|
|
|
writeln decode("http%3A%2F%2Fno%20more%20foo%20bars%20please%2F")
|
|
writeln decode("google.com/search?q=%22unbroken%20string%22")
|