Scala URL query string builder and parser
Scala
import java.net.{URLDecoder, URLEncoder}
import java.nio.charset.StandardCharsets.UTF_8
def encodeQuery(params: Seq[(String, String)]): String =
params.map { (key, value) =>
s"${URLEncoder.encode(key, UTF_8)}=${URLEncoder.encode(value, UTF_8)}"
}.mkString("&")
def parseQuery(query: String): Vector[(String, String)] =
query.split("&").iterator.filter(_.nonEmpty).map { pair =>
pair.split("=", 2) match
case Array(key, value) => URLDecoder.decode(key, UTF_8) -> URLDecoder.decode(value, UTF_8)
case Array(key) => URLDecoder.decode(key, UTF_8) -> ""
}.toVector