docs: def value2url_param(value):
      """
      :param value:
      :return: ascii URL
      """
      if value == None:
          Log.error("Can not encode None into a URL")
  
      if is_data(value):
          value_ = wrap(value)
          output = "&".join([
              value2url_param(k) + "=" + (value2url_param(v) if is_text(v) else value2url_param(value2json(v)))
              for k, v in value_.leaves()
              ])
      elif is_text(value):
          output = "".join(_map2url[c] for c in value.encode('utf8'))
      elif is_binary(value):
          output = "".join(_map2url[c] for c in value)
      elif hasattr(value, "__iter__"):
          output = ",".join(value2url_param(v) for v in value)
      else:
          output = str(value)
      return output