%XXの16進数を直せば良いだけでは?
参考になるかわからないけど、RFC2396 decoder で検索したらでてきますよ。
http://www02.so-net.ne.jp/~hat/files/uridec.c