Nim query string encode and parse helpers
Nim
import std/[uri, strutils]
proc parseQueryString(qs: string): seq[(string, string)] =
for pair in qs.split('&'):
if pair.len == 0: continue
let kv = pair.split('=', maxsplit = 1)
let val = if kv.len > 1: decodeUrl(kv[1]) else: ""
result.add((decodeUrl(kv[0]), val))
let encoded = encodeQuery([(key: "q", val: "nim 2.0"),
(key: "page", val: "2")])
echo encoded
for k, v in parseQueryString(encoded):
echo k, "=", v