5

エスケープされた URL を含む文字列があります。

http%3A%2F%2Fexample.com%3Ffoo%3Dbar+baz

私はそれを次のようにデコードしようとしています:

http://example.com?foo=bar+baz

しかし、Drakma によってエクスポートされた適切な関数が見つかりません。次のようにエンコードできます。

* url-string

"http://example.com?foo=bar+baz"
* (drakma:url-encode url-string :utf-8)

"http%3A%2F%2Fexample.com%3Ffoo%3Dbar%2Bbaz"

...だから、私は正しい軌道に乗っていると思います。誰かが正しい方向にナッジを提供できれば、私はそれを感謝します:-)私は64ビットLinux Mint 13のソースからビルドされたSBCL 1.0.54を使用しています。

私がやろうとしていることを明確にするのに役立つ場合は、Ruby で次のことを行います。

> uri_string = "http%3A%2F%2Fexample.com%3Ffoo%3Dbar+baz"
 => "http%3A%2F%2Fexample.com%3Ffoo%3Dbar+baz" 
> URI.decode uri_string
 => "http://example.com?foo=bar+baz" 
4

2 に答える 2

14

クイックSLIMEセッション。

CL-USER> (ql-dist:system-apropos "url")

#<SYSTEM curly / curly-20120407-git / quicklisp 2012-05-20>
#<SYSTEM curly.test / curly-20120407-git / quicklisp 2012-05-20>
#<SYSTEM do-urlencode / do-urlencode-20120407-git / quicklisp 2012-05-20>
#<SYSTEM url-rewrite / url-rewrite-0.1.1 / quicklisp 2012-05-20>

CL-USER> (ql:quickload :do-urlencode)

C-cC-dpdo-urlencodeRET

DO-URLENCODE:URLDECODE
  Function: (not documented)
DO-URLENCODE:URLENCODE
  Function: (not documented)
DO-URLENCODE:URLENCODE-MALFORMED-STRING
  Type: (not documented)
DO-URLENCODE:URLENCODE-MALFORMED-STRING-STRING
  Generic Function: (not documented)

CL-USER> (do-urlencode:urldecode "http%3A%2F%2Fexample.com%3Ffoo%3Dbar%2Bbaz")

"http://example.com?foo=bar+baz"
于 2012-07-02T15:27:50.863 に答える