Zope3 TAL

RFC とかを一切無視して適当な URL エスケープ関数を書くと

def quote(v):
    return reduce(lambda i, j: i+j, ['%%%2.2x' % (ord(i), ) for i in v], '')

こうなる。これはどうでもいいとして、Zope の TAL から href とかに URL を出力したいときは

python:modules['urllib'].quote(VALUE.encode('utf-8'))

なんかワイド文字で入ってるっぽい。