URL decoding: Difference between revisions
Content deleted Content added
: is %3A |
add language: Retro |
||
Line 14: | Line 14: | ||
[[Category:String manipulation]] |
[[Category:String manipulation]] |
||
=={{header|Retro}}== |
|||
This is provided by the '''casket'''' library (used for web app development). |
|||
<lang Retro> |
|||
create buffer 32000 allot |
|||
{{ |
|||
create bit 5 allot |
|||
: extract ( $c-$a ) drop @+ bit ! @+ bit 1+ ! bit ; |
|||
: render ( $c-$n ) |
|||
dup '+ = [ drop 32 ] ifTrue |
|||
dup 13 = [ drop 32 ] ifTrue |
|||
dup 10 = [ drop 32 ] ifTrue |
|||
dup '% = [ extract hex toNumber decimal ] ifTrue ; |
|||
: <decode> ( $-$ ) repeat @+ 0; render ^buffer'add again ; |
|||
---reveal--- |
|||
: decode ( $- ) buffer ^buffer'set <decode> drop ; |
|||
}} |
|||
"http%3A%2F%2Ffoo%20bar%2F" decode buffer puts</lang> |
Revision as of 09:18, 17 June 2011
URL decoding is a draft programming task. It is not yet considered ready to be promoted as a complete task, for reasons that should be found in its talk page.
The task is to provide a function or mechanism to convert a url encoded string into its original unencoded form.
This task is the reverse of URL decoding.
Example
The encoded string "http%3A%2F%2Ffoo%20bar%2F
" should be reverted to the unencoded form "http://foo bar/
"
See also
Retro
This is provided by the casket' library (used for web app development).
<lang Retro> create buffer 32000 allot
{{
create bit 5 allot : extract ( $c-$a ) drop @+ bit ! @+ bit 1+ ! bit ; : render ( $c-$n ) dup '+ = [ drop 32 ] ifTrue dup 13 = [ drop 32 ] ifTrue dup 10 = [ drop 32 ] ifTrue dup '% = [ extract hex toNumber decimal ] ifTrue ; : <decode> ( $-$ ) repeat @+ 0; render ^buffer'add again ;
---reveal---
: decode ( $- ) buffer ^buffer'set <decode> drop ;
}}
"http%3A%2F%2Ffoo%20bar%2F" decode buffer puts</lang>