diff options
author | Raymond Hettinger <python@rcn.com> | 2005-10-15 16:41:53 (GMT) |
---|---|---|
committer | Raymond Hettinger <python@rcn.com> | 2005-10-15 16:41:53 (GMT) |
commit | 4b0f20def3528469f3579445783d2d5db3f50c48 (patch) | |
tree | 93c246da1d3c738592edf5d53ad83279b70a7dfb | |
parent | 239322b97e40d55b7406b09b953ac4c1fe10dcc5 (diff) | |
download | cpython-4b0f20def3528469f3579445783d2d5db3f50c48.zip cpython-4b0f20def3528469f3579445783d2d5db3f50c48.tar.gz cpython-4b0f20def3528469f3579445783d2d5db3f50c48.tar.bz2 |
Teach unquote() to handle unicode inputs
-rw-r--r-- | Lib/test/test_urllib.py | 4 | ||||
-rw-r--r-- | Lib/urllib.py | 2 |
2 files changed, 6 insertions, 0 deletions
diff --git a/Lib/test/test_urllib.py b/Lib/test/test_urllib.py index 94f0f9e..4579c47 100644 --- a/Lib/test/test_urllib.py +++ b/Lib/test/test_urllib.py @@ -415,6 +415,10 @@ class UnquotingTests(unittest.TestCase): self.assertEqual(expect, result, "using unquote_plus(): %s != %s" % (expect, result)) + def test_unquote_with_unicode(self): + r = urllib.unquote(u'br%C3%BCckner_sapporo_20050930.doc') + self.assertEqual(r, u'br\xc3\xbcckner_sapporo_20050930.doc') + class urlencode_Tests(unittest.TestCase): """Tests for urlencode()""" diff --git a/Lib/urllib.py b/Lib/urllib.py index bc16be0..f00d02f 100644 --- a/Lib/urllib.py +++ b/Lib/urllib.py @@ -1061,6 +1061,8 @@ def unquote(s): res[i] = _hextochr[item[:2]] + item[2:] except KeyError: res[i] = '%' + item + except UnicodeDecodeError: + res[i] = unichr(int(item[:2], 16)) + item[2:] return "".join(res) def unquote_plus(s): |