quickUrlEncode <- function(url, dict.url=getDict(ifelse(large_dict, "url", "url_large")), cs=TRUE, colon=cs, slash=cs, large_dict=FALSE) {

  ## process the percent symbol first
  if ("%" %in% names(dict.url)) {
    url <- gsub("%", "%25", url)
    dict.url %<>% {.[names(.) != "%"]}
  }

  for (nm in setdiff(names(dict.url), c("%", if (!colon) ":", if (!slash) "/")))
    url <- gsub(escapeRegEx(nm), dict.url[nm], url)
  
  return(url)
}

## EG: 
if (FALSE) {

    N <- 200
    url <- rep(c('http://dev-rdfsdfsdrta.s3.asdfdsfzonaws.com/jusdfsdfds/TESTING/Vdfsdfd.TXT?AWSAccessKeyId=dsfsdfsdfsdfsdfsdfsd&Expires=1433980567&Signature=sdfsdfdsfdsfdsfdsfsd%3D', "http://HelloWorld?how&are=you?", "http://HelloWorld?how&are=you?(Ok and you)ZZ\tZZThere you go"), N)

    sapply(url, URLencode, USE.NAMES=FALSE)
    quickUrlEncode(url)
    mbench(quickUrlEncode(url), sapply(url, URLencode, USE.NAMES=FALSE), checkEQUAL=FALSE)
}
