X-Git-Url: http://dolda2000.com/gitweb/?a=blobdiff_plain;f=wrw%2Fproto.py;h=cc2edb85d5665046395fd42566efe1ea28f0d220;hb=6d2e09cf5bf8ddfa126ca16d536f6b42e502f0ce;hp=0a6a43022004d8d45e7911fc9355d4b120840604;hpb=2a5a8ce70a0107b7bfd5bd3459ae4aae3a7558e2;p=wrw.git diff --git a/wrw/proto.py b/wrw/proto.py index 0a6a430..cc2edb8 100644 --- a/wrw/proto.py +++ b/wrw/proto.py @@ -103,12 +103,15 @@ def simpleerror(env, startreq, code, title, msg): return [buf] def urlq(url): + if isinstance(url, str): + url = url.encode("utf-8") ret = "" + invalid = b"&=#?/\"'" for c in url: - if c == "&" or c == "=" or c == "#" or c == "?" or c == "/" or (ord(c) <= 32): - ret += "%%%02X" % ord(c) + if c in invalid or (c <= 32) or (c >= 128): + ret += "%%%02X" % c else: - ret += c + ret += chr(c) return ret class urlerror(ValueError):