continued convertig filters

--HG--
branch : trunk
diff --git a/jinja2/filters.py b/jinja2/filters.py
index db0ea22..300e0cd 100644
--- a/jinja2/filters.py
+++ b/jinja2/filters.py
@@ -15,8 +15,8 @@
 except ImportError:
     itemgetter = lambda a: lambda b: b[a]
 from urllib import urlencode, quote
-from jinja2.utils import escape, pformat
-from jinja2.nodes import Undefined
+from jinja2.utils import escape, pformat, urlize
+from jinja2.runtime import Undefined
 
 
 
@@ -287,31 +287,6 @@
         return env.undefined_singleton
 
 
-def do_urlencode(value):
-    """
-    urlencode a string or directory.
-
-    .. sourcecode:: jinja
-
-        {{ {'foo': 'bar', 'blub': 'blah'}|urlencode }}
-            -> foo=bar&blub=blah
-
-        {{ 'Hello World' }}
-            -> Hello%20World
-    """
-    if isinstance(value, dict):
-        tmp = {}
-        for key, value in value.iteritems():
-            # XXX env.charset?
-            key = unicode(key).encode(env.charset)
-            value = unicode(value).encode(env.charset)
-            tmp[key] = value
-        return urlencode(tmp)
-    else:
-        # XXX: env.charset?
-        return quote(unicode(value).encode(env.charset))
-
-
 def do_jsonencode(value):
     """
     JSON dump a variable. just works if simplejson is installed.
@@ -825,7 +800,6 @@
     'first':                do_first,
     'last':                 do_last,
     'random':               do_random,
-    'urlencode':            do_urlencode,
     'jsonencode':           do_jsonencode,
     'filesizeformat':       do_filesizeformat,
     'pprint':               do_pprint,