url_encoding_decoding.sf 382 B

1234567891011121314151617181920
  1. #!/usr/bin/ruby
  2. var url = 'http://foo bar/';
  3. func urlencode(str) {
  4. str.gsub!(%r"([^-A-Za-z0-9_.!~*'() ])", {|a| "%%%02X" % a.ord});
  5. str.gsub!(' ', '+');
  6. return str;
  7. }
  8. func urldecode(str) {
  9. str.gsub!('+', ' ');
  10. str.gsub!(/\%([A-Fa-f0-9]{2})/, {|a| 'C'.pack(a.hex)});
  11. return str;
  12. }
  13. urldecode(urlencode(url)) == url || die "error!";
  14. say "** Test passed!";