An alternate implementation of Python's stdlib urllib.urlencode
function which
accepts unicode keys and values within the query
dict/sequence; all Unicode keys and values are first converted to
UTF-8 before being used to compose the query string.

The value of query must be a sequence of two-tuples
representing key/value pairs or an object (often a dictionary)
with an .items() method that returns a sequence of two-tuples
representing key/value pairs.

For minimal calling convention backwards compatibility, this
version of urlencode accepts but ignores a second argument
conventionally named doseq. The Python stdlib version behaves
differently when doseq is False and when a sequence is
presented as one of the values. This version always behaves in
the doseq=True mode, no matter what the value of the second
argument.

See the Python stdlib documentation for urllib.urlencode for
more information.

Changed in version 1.5: In a key/value pair, if the value is None then it will be
dropped from the resulting output.