diff --git a/Lib/test/test_normalization.py b/Lib/test/test_normalization.py
index f07a87d..ae49996 100644
--- a/Lib/test/test_normalization.py
+++ b/Lib/test/test_normalization.py
@@ -33,7 +33,7 @@
 class NormalizationTest(unittest.TestCase):
     def test_main(self):
         part1_data = {}
-        for line in open_urlresource(TESTDATAURL):
+        for line in open_urlresource(TESTDATAURL, encoding="utf-8"):
             if '#' in line:
                 line = line.split('#')[0]
             line = line.strip()
diff --git a/Lib/test/test_support.py b/Lib/test/test_support.py
index 99f57e6..637043d 100644
--- a/Lib/test/test_support.py
+++ b/Lib/test/test_support.py
@@ -244,7 +244,7 @@
     else:
         testcase.fail('Missing SyntaxError: "%s"' % statement)
 
-def open_urlresource(url):
+def open_urlresource(url, *args, **kw):
     import urllib, urlparse
 
     requires('urlfetch')
@@ -253,11 +253,11 @@
     for path in [os.path.curdir, os.path.pardir]:
         fn = os.path.join(path, filename)
         if os.path.exists(fn):
-            return open(fn)
+            return open(fn, *args, **kw)
 
     print('\tfetching %s ...' % url, file=get_original_stdout())
     fn, _ = urllib.urlretrieve(url, filename)
-    return open(fn)
+    return open(fn, *args, **kw)
 
 
 class WarningMessage(object):
