 
 (defn- assoc-form-params
   "Parse and assoc parameters from the request body with the request."
-  [request]
+  [request encoding]
   (if-let [body (and (urlencoded-form? request) (:body request))]
-    (let [params (parse-params (slurp* body))]
+    (let [params (parse-params (slurp* body) encoding)]
       (merge-with merge request {:form-params params, :params params}))
     request))
 

  the request map:
    :query-params - a map of parameters from the query string
    :form-params  - a map of parameters from the body
    :params       - a merged map of both query and form parameters"
  [handler]
  (fn [request]
    (-> request
      assoc-form-params
      assoc-query-params
      handler)))

  (:use clojure.contrib.str-utils)
  (:import java.net.URLDecoder))

(defn- urldecode
  "Decode a urlencoded string using the *encoding* var."
  [text encoding]
  (URLDecoder/decode text encoding))

(defn- assoc-vec
  "Associate a key with a value. If the key already exists in the map,
