Thanks, but the point was to be able to do it all as GET. Support for POST only became a necessity trying to parse some search engines with parameters in the url.
Yes, you encode `&` as `%26`, `=` as `%3d`, `?` as `%3f` etc. You only need to resort to POST if you would hit length limits with your constructed url.
Note that `#` should be encoded as `%23` and that your suggestion of encoding it as `%` results in invalid urls.
Also this means e.g. search result page urls can be passed without resorting to POST.